此代码显示数字的素数。 我想知道如何两次打印相同的素数因子 例如:45 => 3.3.5
// get the number
for(int i = 2; i< number; i++) {
while(number%i == 0) {
System.out.println(i+" ");
number = number/i;
}
}
if(number >2) {
System.out.println(number);
}
答案 0 :(得分:1)
了解代码正在执行的最简单/最佳方法是运行代码。您可以尝试在一端使用调试器,但我们也可以尝试在此处进行总结:
i = 2
nothing happens, because 45 is not divisible by 2
i = 3
the while loop iterates twice, printing 3 twice, and also setting
number = 45 -> 15 -> 5
i = 4
nothing happens, because 45 is not divisible by 4
i = 5
the while loop iterates once, printing 5 once, and setting number = 5 / 5 = 1
此时,外部for
循环失败,因为i = 5
和number = 1
。
答案 1 :(得分:0)
当i = 3时,while循环重复两次。 在第一次迭代中,它将打印3并更新number = 15的值 随着数字更新,它将再次迭代。 在第二次迭代中,它将再次打印3并更新number = 5的值 现在,(5%3 == 0)是不可能的,因此不会第三次迭代。