求一个数的素数因子

来源:互联网 发布:网店数据分析报告 编辑:程序博客网 时间:2024/06/02 13:32
public class FactorTest {    //要被分解的整数    private static int number = 0;    public static void main(String[] args) {        // 在主函数里分解从1到1000的数        for (int i = 1; i <= 1000; i++) {            number = i;            findFactors();        }    }    public static void findFactors() {        StringBuffer sb = new StringBuffer(number + "=");        // 实际上就是求他的质因数        for (int i = 2; i <= Math.sqrt(number); i++) {            // 循环求i是不是它的质因数,直到i不是它的因数为止(i = 4能被整除的不可能出现,因为当i=2时已经被全求出来了)            // 也就是说number % i==0的情况,只有当i为质数时才有可能出现。            while (true) {                // 如果能整除,就求number/i的质因数                if (number % i == 0) {                    sb.append(i);                    number /= i;                    if (number != 1) {                        sb.append("*");                    }                } else {                    break;                }            }        }        if (number != 1) {            sb.append(number);        }        System.out.println(sb);    }}

0 0
原创粉丝点击