我试图在一定范围内找到整数的整数。当我在我的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;
}
}
答案 0 :(得分:0)
for(int r=3;r<(Math.Sqrt(n)+1);r+2)
r+2
会创建一个结果,但不会将其分配给任何内容。您需要r = r + 2
或r += 2
答案 1 :(得分:0)
您的代码存在一些问题。
首先,你可以解决像
这样的分配问题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;
}