题解 | #质数因子#
质数因子
https://www.nowcoder.com/practice/196534628ca6490ebce2e336b47b3607
解题思路
- 读取输入, 定义被计算质因子的数值为a。
- 使用短除法,一直除到
a == 1; - 定义遍历质子用的i为
int i=2, 即i从2开始遍历,每遍历一次i++。 - 开始遍历i,循环中如果
a%i==0,则输出i,并使a=a/i - 否则判断是否
i>a/i,如果大于了则,赋值i=a(这一步的目的是保存最后一个质因子)。 - 否则更新i的数值,即
i++。
代码
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
while (in.hasNextInt()) { // 注意 while 处理多个 case
int a = in.nextInt();
int i = 2;
while (a != 1){
while( i <= a) {
if (a % i == 0) {
System.out.print(i + " ");
a = a/i;
}else{
if(i>a/i) i = a;
else i++;
}
}
}
}
}
}
查看3道真题和解析