素数序列
因此,我的程序所做的是读取用户输入,并打印出一系列素数,这些素数通向输入。例如,如果我输入20,序列应该打印出来 2. 5. 7.等 直到它达到19(因为20不是质数) 唯一的问题是当我运行程序时,1会继续打印。这是我计算一个数是否为素数的方法
public boolean isPrime(int number)
{
int prime;
for(prime = 2; prime < number; prime++)
{
if (number % prime == 0)
{
if(number == 1)
{
return false;
}
return false;
}
}
return true;
}
我已经阅读了多个论坛和解决方案,但似乎都没有任何帮助。我完全卡住了
# 1 楼答案
这是找到1到n之间的素数的简单方法。 希望清楚
输出-
# 2 楼答案
放
if (number < 2) return false;
作为方法中的第一条语句,应该做到这一点
# 3 楼答案
当
number
为1
(循环将从2
开始)时,不会进入循环。将测试移到循环之前,你永远不会在循环之后使用prime
,所以我会让它成为循环的局部不过,你可以稍微优化一下,例如,消除所有小于
2
(正如@luk2302所建议的)的值,并进行一些数学运算,消除偶数值,只测试平方根# 4 楼答案
我就是这么做的: