Java实现将一个正整数分解质因数

* 题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

  * 分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:

  *(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。

  *(2)如果n>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。

  *(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。

  *这个题目很明显是要用递归算法来实现的,打印“*”有些技巧,但也很容易解决,程序如下:


import java.util.Scanner;

public class Yinshifenjie {

public static void fenjie(int n) {

for (int i=2;i <=n;i++) {

if (i == n) {

System.out.print(i);

return;

}

if (n > i && (n % i == 0)) {

System.out.print(i+"*");

fenjie(n / i);

break;

}

}

}

public static void main(String[] args) {

Scanner input = new Scanner(System.in);

System.out.println("请输入一个整数:");

int n = input.nextInt();

fenjie(n);

}

}

最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-12-23 02:52:10

Java实现将一个正整数分解质因数的相关文章

将一个正整数分解质因数

查看全套"c语言习题集" 题目: 将一个正整数分解质因数.例如:输入90,打印出90=2*3*3*5. 程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可. (2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步. (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步. 2.程序源代码: #include "

iostream-将一个正整数分解质因数。例如:输入 90, 打印出 90=2*3*3*5

问题描述 将一个正整数分解质因数.例如:输入 90, 打印出 90=2*3*3*5 #include using namespace std; void fnabs(int n) { int i; for(i=2;i<=n;i++) { while(n%i==0) {n/=i; cout<<"*"<<i;} } } int main() { int n; n=90; cout<<n<<"="; fnabs(n);

Java小例子:分解质因数

这个例子演示如何利用递归来完成分解质因数. import java.util.List; import java.util.ArrayList; /** * 分解质因数 */ public class GetFactor { public static void main(String[] args) { List<Long> factors = getFactors(5555566666L, 2); System.out.println(factors); } /** * 通过递归实现分解质

冒泡排序算法 递归算法,求n的阶乘 求最大公约数和最小公倍数 java分解质因数

   1.  /**     2.  * 冒泡排序算法     3.  */      4. public class BubbleSort {      5.     public static void sort(int[] values) {      6.         int temp;      7.         for (int i = 0; i < values.length; ++i) {      8.             for (int j = 0; j <

Factors 分解质因数

package com.yourself.yours; import java.util.Scanner; /** *************************************************************** * @author cc Factors * 分解质因数 如: 输入90 打印 90=2*3*3*5 * 分析: 对n进行分解质因数 * 1.设定最小的质数 k=2: * 2.if k==n 说明n本身就是质因数 分解过程完成 ,直接打印 * 3.if n

深入分析C语言分解质因数的实现方法_C 语言

首先来看一个最简单的C语言实现质因数分解的列子: #include <stdio.h> void main( ) { int data, i = 2; scanf("%d", &data); while(data > 1) { if(data % i == 0) { printf("%d ", i); data /= i; } else i++; } } 原理&&方法把一个合数分解为若干个质因数的乘积的形式,即求质因数的过程

excel怎么利用vbe分解质因数?

  excel怎么利用vbe分解质因数?目的:用excel自定义函数来分解质因数. 1.例如,我们要把七乐彩的字典序分解质因数. 2.进入vbe编程环境. 3.插入模块. 4.编写程序,做一个名叫"质数"的自定义函数. 5.关闭vbe,在单元格插入函数. 6.选择"用户定义",快速找到函数. 7.选定单元格,应用函数. 8.第一步计算完毕. 9.再次应用函数,第二步计算结果,也就是二次分解的结果. 10.第三步计算的结果. 11.我们知道3是质数,431还需要计算一

算法题-把一个正整数分解为几个不同的正整数之和,打印出所有组合。

问题描述 把一个正整数分解为几个不同的正整数之和,打印出所有组合. 笔试遇到的一个题,不会做.从网上搜,只搜到求积最大的一个组合.有会的帮忙解决下,多谢,最好说下算法思路,能有c源码最好

正整数分解为几个连续自然数之和

题目:输入一个正整数,若该数能用几个连续正整数之和表示,则输出所有可能的正整数序列. 一个正整数有可能可以被表示为n(n>=2)个连续正整数之和,如: 15=1+2+3+4+5 15=4+5+6 15=7+8 有些数可以写成连续N(>1)个自然数之和,比如14=2+3+4+5:有些不能,比如8.那么如何判断一个数是否可以写成连续N个自然数之和呢? 一个数M若可以写成以a开头的连续n个自然数之和,则M=a+(a+1)+(a+2)+-+(a+n-1)=n*a+n*(n-1)/2,要求a!=0,否则