只能使用赋值,调用,减量

时间:2014-04-17 02:26:54

标签: c#

我试图在一定范围内找到整数的整数。当我在我的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;
    }
}

2 个答案:

答案 0 :(得分:0)

for(int r=3;r<(Math.Sqrt(n)+1);r+2)

r+2会创建一个结果,但不会将其分配给任何内容。您需要r = r + 2r += 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;
    }