题解 | #质数因子#
质数因子
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++; } } } } } }