gpt4 book ai didi

java - 减少数学分解过程中的迭代

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

我需要重构内循环方面的帮助。我想要一种更有效的方法,包括更少的迭代。

public static void main(String[] args) {
for (int i = 2; i <= 100; i++) {
System.out.print("Factors of " + i + ": ");


for (int j = 2; j < i; j++)
if ((i % j) == 0)
System.out.print(j + " ");
System.out.println();

}
}

这是我迄今为止所做的尝试:

 int j = 2;
do{
if ((i % j) == 0) System.out.print(j + " ");
System.out.println();
j++;
} while (j < 2);

这只打印出第一个因素,我一生都无法弄清楚如何让它遍历整个列表。我知道我在语义上遗漏了一些东西,但这让我抓狂。

最佳答案

您只需运行从 2Math.sqrt(i)j for 循环,因为如果您找到了一个因子ij 小于或等于 Math.sqrt(i),那么你也找到了对应的因子 i/j 大于或等于 Math.sqrt(i) 并且您也可以打印该因子(除非 j == i/j,那么不要将相同的因子打印两次)。

关于java - 减少数学分解过程中的迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18493989/

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