java经典算法之二——分解质因数

来源:互联网 发布:java项目技术亮点难点 编辑:程序博客网 时间:2024/05/22 09:43

每个合数都可以写成几个质数相乘的形式。其中每个质数都是这个合数的因数,叫做这个合数的分解质因数。 分解质因数只针对合数。如下是我用Java编写分解质因数的demo,有详细的注释,不懂的,欢迎发表评论

public class demo05 {    public static void main(String[] args) {        factor(1000);    }    public static void factor(int num){//分解质因数的方法        for (int i = 2; i <num-1 ; i++) {            if(num%i==0){//2num-1个数进行判断,若numi整除,则说明inum的一个因数                System.out.print(i + "\t");//将能被num整除的i进行答应                if(isPrime(num/i)){//判断被分解之后的数是否是质数,比如:21=i*7(循环的第一次第二次时,i=3;那么此时num/i=7                    System.out.print(num/i+"\t");//如果是质数,则将此质数进行打印                    return;//并结束此方法                }else {                    factor(num/i);//递归                    return;                }            }        }    }    public static boolean isPrime(int num){//判断num是否是质数        for (int i = 2; i <=Math.sqrt(num) ; i++) {            if(num%i==0){                return false;            }        }        return true;    }}

0 0
原创粉丝点击