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); } }
求一个数的素数因子
最新推荐文章于 2024-03-26 08:59:08 发布