方法一:外层while循环
package com.jake.primefactor;
import java.util.ArrayList;
import java.util.List;
public class PrimeFactor {
public static List<Integer> calc(int number) {
List<Integer> factors = new ArrayList<>();
while (number > 1) {
for (int factor = 2; factor <= number; factor++) {
if (number % factor == 0 && number > factor) {
factors.add(factor);
number = number / factor;
break;
}
}
}
return factors;
}
}
方法二:内层while循环
package com.jake.primefactor;
import java.util.ArrayList;
import java.util.List;
public class PrimeFactor {
public static List<Integer> calc(int number) {
List<Integer> factors = new ArrayList<>();
if (number >= 2) {
for (int factor = 2; factor < number; factor++) {
while (number % factor == 0 && number > factor) {
factors.add(factor);
number = number / factor;
}
}
factors.add(number);
}
return factors;
}
}
测试:
import com.jake.primefactor.PrimeFactor;
public class Main {
public static void main(String[] args) {
for (int i = 0; i <= 100; i++) {
System.out.println(i + ": " + PrimeFactor.calc(i));
}
}
}
测试结果:
0: []
1: []
2: [2]
3: [3]
4: [2, 2]
5: [5]
6: [2, 3]
7: [7]
8: [2, 2, 2]
9: [3, 3]
10: [2, 5]
11: [11]
12: [2, 2, 3]
13: [13]
14: [2, 7]
15: [3, 5]
16: [2, 2, 2, 2]
17: [17]
18: [2, 3, 3]
19: [19]
20: [2, 2, 5]
21: [3, 7]
22: [2, 11]
23: [23]
24: [2, 2, 2, 3]
25: [5, 5]
26: [2, 13]
27: [3, 3, 3]
28: [2, 2, 7]
29: [29]
30: [2, 3, 5]
31: [31]
32: [2, 2, 2, 2, 2]
33: [3, 11]
34: [2, 17]
35: [5, 7]
36: [2, 2, 3, 3]
37: [37]
38: [2, 19]
39: [3, 13]
40: [2, 2, 2, 5]
41: [41]
42: [2, 3, 7]
43: [43]
44: [2, 2, 11]
45: [3, 3, 5]
46: [2, 23]
47: [47]
48: [2, 2, 2, 2, 3]
49: [7, 7]
50: [2, 5, 5]
51: [3, 17]
52: [2, 2, 13]
53: [53]
54: [2, 3, 3, 3]
55: [5, 11]
56: [2, 2, 2, 7]
57: [3, 19]
58: [2, 29]
59: [59]
60: [2, 2, 3, 5]
61: [61]
62: [2, 31]
63: [3, 3, 7]
64: [2, 2, 2, 2, 2, 2]
65: [5, 13]
66: [2, 3, 11]
67: [67]
68: [2, 2, 17]
69: [3, 23]
70: [2, 5, 7]
71: [71]
72: [2, 2, 2, 3, 3]
73: [73]
74: [2, 37]
75: [3, 5, 5]
76: [2, 2, 19]
77: [7, 11]
78: [2, 3, 13]
79: [79]
80: [2, 2, 2, 2, 5]
81: [3, 3, 3, 3]
82: [2, 41]
83: [83]
84: [2, 2, 3, 7]
85: [5, 17]
86: [2, 43]
87: [3, 29]
88: [2, 2, 2, 11]
89: [89]
90: [2, 3, 3, 5]
91: [7, 13]
92: [2, 2, 23]
93: [3, 31]
94: [2, 47]
95: [5, 19]
96: [2, 2, 2, 2, 2, 3]
97: [97]
98: [2, 7, 7]
99: [3, 3, 11]
100: [2, 2, 5, 5]
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/19611.html