减少Java中的内部循环迭代次数以提高效率

减少Java中的内部循环迭代次数以提高效率,java,loops,for-loop,nested,continue,Java,Loops,For Loop,Nested,Continue,这是一个来自Java教科书的小挑战。 下面的代码可以更高效(通过减少内部循环迭代次数,可能使用continue语句) /* 使用嵌套循环查找数字的因子 在2到100之间。 在程序中,外部循环从2运行到100。内环连续测试 从2到i的所有数字,打印那些平均除以i的数字。 */ 类查找因子{ 公共静态void main(字符串参数[]){ 对于(inti=2;i在内环测试中,不是所有数字都达到i。如果只测试i的一半就足够了 for (int j = 2; j <= i/2; j++) fo

这是一个来自Java教科书的小挑战。 下面的代码可以更高效(通过减少内部循环迭代次数,可能使用
continue
语句)

/*
使用嵌套循环查找数字的因子
在2到100之间。
在程序中,外部循环从2运行到100。内环连续测试
从2到i的所有数字,打印那些平均除以i的数字。
*/
类查找因子{
公共静态void main(字符串参数[]){

对于(inti=2;i在内环测试中,不是所有数字都达到i。如果只测试i的一半就足够了

 for (int j = 2; j <= i/2; j++)

for(int j=2;j在内环测试中,不是所有数字都达到i。如果只测试i的一半就足够了

 for (int j = 2; j <= i/2; j++)
for(int j=2;j
for(int j=2;j
不要试图破坏它,考虑一个自然数N,你可以计算这些因素。也许你可以减少你必须检查的数量?< /P> 查找因式分解整数了解更多信息/不同的算法。

for(int j=2;j
不要试图破坏它,考虑一个自然数N,你可以计算这些因素。也许你可以减少你必须检查的数量?< /P>
查找因式分解整数以了解更多信息/不同的算法。

将内循环的长度设置为外循环索引的平方
每个数字的最大因子都是它的平方

将内环的长度设置为外环索引的平方
每个数字的最大因子及其平方

最大因子等于或小于iYou的一半可以进一步将循环限制为小于或等于
sqrt(i)的因子
如果在找到较小的因子时拉出较大的因子。最大因子等于或小于iYou的一半,则可以将循环进一步限制为小于或等于
sqrt(i)的因子
如果在找到较小的因子时拉出较大的因子。检查j是否总是小于i/2,你永远不会有一个因子大于i的一半。你也可以计算其相反的因子,然后你可以将限制设为i的sqrt,检查j是否总是小于i/2,你永远不会有一个因子大于i的一半也计算它的相反因子,然后你可以把极限设为i的sqrt
for (int j = 2; j < i; j++)