您的位置:首页 > 其它

分解质因数

2015-09-29 17:39 246 查看
进行质因数分解



前沿

对一个自然数进行分解质因数的基础还是确定某个数是否是质素(素数)的问题。

如果,我们能够很好地来确定某个自然数就是素数,那么,在运用递归算法,就可以很快的实现对一个具体的自然数进行质因数分解了。

结论

若,一个数已经是质数了,那么它的质因数就是它本身。

算法实现:(java语言--递归实现)

/**
* 题目:实现一个合数进行分解质因数
* 解决方法:递归方法
* @author xiaoxiaolan
*
*/
public class FenJieZhiYinShu {

private static String str="";

public static void main(String[] args) {
int number=789;
if(isPrime(number)){
System.out.println("该数是素数不需要再分解了!");
}
else{
System.out.println(number+"的所有因素依次展示如下:");
factor(number);
System.out.println();
System.out.println(number+"分解质因数的形式为:"+number+"="+str);
}
}

private static void factor(Integer number){
for(Integer i=2;i<number;i++){
if(number%i==0){
System.out.print(i+"\t");
str=str.concat(i.toString()+"*");
Integer num=number/i;
if(isPrime(num)){
str=str.concat(num.toString());
System.out.print(num);
}
else{
factor(num);
}
return;//break;
}
}
}

private static boolean isPrime(Integer num){
boolean flag=true;
for(Integer i=2;i<=Math.sqrt(num);i++){
if(num%i==0){
flag=false;
}
}
return flag;
}
}


注:编程时一定要注意变量的边界,以及方法的返回时机。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: