题解 | #质数因子#
质数因子
https://www.nowcoder.com/practice/196534628ca6490ebce2e336b47b3607
import java.util.*;
public class Main {
public static void main(String[] args){
Scanner sc= new Scanner(System.in);
int input = sc.nextInt();
int i = 2;
int count =0;
while(input!=1){
count++;
if(input%i==0){
System.out.print(i+" ");
input=input/i;
}else{
if(i*i>input){
i=input;
}else{
i++;
}
}
}
}
}
最关键的就是i平方和input比较的地方我也是看了别人照着抄的
后面就一直想为什么i平方大于input,就代表input是质数
我个人是这么理解
假设这个数input是23,ok那我们代入进去,i逐渐递增到5,5平方 25,由此得知这个input是16<input<25,<=5的两个数组成的最大数就是5平方25。
首先我们是一路递增上去的,2 3 4 5和23 都构不成关系,也就是说16<input<25以内的某个数它不和2 3 4 5有关系,满足这种条件的话他只能为素数。(应该算是一种规律总结吧 )。


