题解 | #质数因子#
质数因子
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有关系,满足这种条件的话他只能为素数。(应该算是一种规律总结吧 )。