此代码如何打印相同的PrimeFactors?

时间:2019-07-18 05:15:42

标签: java

此代码显示数字的素数。 我想知道如何两次打印相同的素数因子 例如: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);
  }

2 个答案:

答案 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 = 5number = 1

答案 1 :(得分:0)

当i = 3时,while循环重复两次。 在第一次迭代中,它将打印3并更新number = 15的值 随着数字更新,它将再次迭代。 在第二次迭代中,它将再次打印3并更新number = 5的值 现在,(5%3 == 0)是不可能的,因此不会第三次迭代。