只能使用赋值、调用、递减
本文关键字:调用 递减 赋值 | 更新日期: 2023-09-27 17:58:39
我试图找到某个范围内的素数整数。当我在else语句中放入for循环时,我似乎遇到了一个错误。
private static bool prime(int n,out int factor)
{
factor = 1;
if (n < 2)
return false;
else if (n == 2 || n == 3)
return true;
else if( n % 2 == 0)
return false;
for(int r = 3; r < (Math.Sqrt(n) + 1); r + 2)
{
if ((Convert.ToInt32(n)) % r == 0)
return false;
}
}
for(int r=3;r<(Math.Sqrt(n)+1);r+2)
r+2
创建了一个结果,但它没有分配给任何内容。您想要r = r + 2
或r += 2
您的代码有几个问题。
首先,你可以解决像这样的分配问题
r=r+2
其次,函数需要从所有代码路径返回一些内容。它目前没有这样做。虽然你可以在这里选择你的逻辑,但我最后还是回到了真。
private static bool prime(int n, out int factor)
{
factor = 1;
if (n < 2)
return false;
else if (n == 2 || n == 3)
return true;
else if (n % 2 == 0)
{
return false;
}
for (int r = 3; r < (Math.Sqrt(n) + 1); r = r + 2)
{
if ((Convert.ToInt32(n)) % r == 0)
return false;
}
return true;
}