gpt4 book ai didi

java - 需要在 do while 循环中打印出最大素因数

转载 作者:行者123 更新时间:2023-12-01 17:20:47 25 4
gpt4 key购买 nike

我希望以下代码仅打印该数字的最大质因数。正如你所看到的,我的 println 位于 while 循环中,并打印出 2 和 3。有人请告诉我如何在其中插入 println该代码仅打印出最大的质因数,而不是两者。无论我在代码中的其他哪个位置插入 println ,我都会得到 2 和 3,或者如果在 while 循环之外,我会得到 4,我明白为什么是 4,但意识到 4 是不正确的。如果无法做到这一点,我将不会使用 do while 循环。谢谢。

public class Main {
public static void main(String[] args) {
//Using a do while loop to determine the largest prime factor of a number
//and only wanting to print out the largest prime factor.
int i = 2;
int number = 36;
int largestPrimeFactor = 0;
for (i = 2; i <= number; i++) {
if (number % i == 0) {
largestPrimeFactor = i;
}
do {
number /= i;
} while (number % i == 0);
System.out.println(i + " is the largest prime factor");
}
}
}

最佳答案

  1. 如果number % i == 0false,则继续for循环。
  2. 打印largestPrimeFactor,而不是i
  3. print 语句需要放在 for 循环之外。

按如下方式进行:

public class Main {
public static void main(String[] args) {
int number = 39, largestPrimeFactor = 0;
for (int i = 2; i <= number; i++) {
if (number % i == 0) {
largestPrimeFactor = i;
} else {
continue;
}
do {
number /= i;
} while (number % i == 0);
}
System.out.println(largestPrimeFactor + " is the largest prime factor");
}
}

输出:

13 is the largest prime factor

关于java - 需要在 do while 循环中打印出最大素因数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61294091/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com