通过循环显示素数

时间:2014-10-07 06:14:24

标签: java loops

在以下循环中:

while (j <= number / 2)

需要将数字除以2是多少? 它会影响构建程序的运行时间吗?

2 个答案:

答案 0 :(得分:1)

如果这个条件是从测试number是否为素数的方法中获取的,那么它应仅测试它是否可以按j除以j <= Math.sqrt(number)j <= number/2 j <= number太过分了。不过,它比测试所有{{1}}提供了更好的性能。

答案 1 :(得分:1)

是的,它将运行时间缩短了一半(*)。

您无需检查大于一半数字的数字。它们不是因素。

但这是一个非常宽松的上限。你可以提前停止(在平方根处:会有比平方根更大的因子,但你已经通过该对的另一个因子找到了那些因素)。

(*)如果你在循环的顶部只计算一次number/2,那就是。如果你在每次迭代中反复计算它,你会再次浪费相当多的节省。