题解 | #质数因子#
质数因子
https://www.nowcoder.com/practice/196534628ca6490ebce2e336b47b3607
import java.util.ArrayList;
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
int num = in.nextInt();
for (int i = 2; i <= num; i++) {
// 判断一下这个数字是不是质数,如果是质数的话,直接输出它本身就好
if(isper(num)){
System.out.print(num+"");
break;
}
if (num % i == 0) {
num /= i;
System.out.print(i+" ");
i = 1;
}
}
}
// 原本是没有这个方法的,但是在上面去取质因数的时候,如果数字太大,会运行超时,所以不能循环结束,因此加一个判断它是否是质数的,这样可以节省时间
//判断质数我们不需要完全遍历这个数字,只需要对他开放,然后看开方后的数字能否对某个数字取余即可.
static boolean isper(int num){
for(int i=2;i<=Math.sqrt(num);i++){
if(num%i==0)
return false;
}
return true;
}
}

