- 只需 判断到根号n出,就可以知道该数是否为质数
- 当从最小质因子去重之后后面较小的非质数就不可能成为他的因子。所以说最后他的因子都是质数。(数论)
public class Main{
public static void main(String[] args) {
int n = 100;
Map<Integer, Integer> map = new HashMap<>();
int nt = n;
for(int i = 2; i * i < nt; i ++) {
while(n % i == 0) {
Integer x = map.get(i);
if(x == null) {
map.put(i, 1);
}
else {
map.put(i, x + 1);
}
n = n / i;
System.out.println(n);
}
}
System.out.println(map);
StringBuilder stb = new StringBuilder();
for(Map.Entry<Integer, Integer> entry: map.entrySet()) {
int k = entry.getKey();
int v = entry.getValue();
for(int i = 0; i < v; i ++) {
stb.append("*" + k );
}
}
System.out.println(stb.substring(1));
}
}
运行结果:
50
25
5
1
{2=2, 5=2}
2*2*5*5