进行质因数分解
前沿
对一个自然数进行分解质因数的基础还是确定某个数是否是质素(素数)的问题。
如果,我们能够很好地来确定某个自然数就是素数,那么,在运用递归算法,就可以很快的实现对一个具体的自然数进行质因数分解了。
结论
若,一个数已经是质数了,那么它的质因数就是它本身。
算法实现:(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; } }
注:编程时一定要注意变量的边界,以及方法的返回时机。
分解质因数
最新推荐文章于 2023-02-27 19:36:54 发布