质数使负数变为正数,0,1 = 非质数

问题描述 投票:0回答:1

我的代码:

        int n = int.Parse(Console.ReadLine());
        bool result= true;

        if (n < 0)
        {
            n = -n;
        }

        for (int i = 2; i < n; i++)
        {
            if (n % i == 0)
            {
                result = false;
                break;
            }
        }

        if (result)
        {
            Console.WriteLine("Prime");
        }
        else
        {
            Console.WriteLine("Not prime");
        }

所以我想在负数时使其成为负数,例如-11再添加1 - 并使其成为正数,我尝试过:

        if (n < 0)
        {
            n = -n;
        }

但是它并没有像我预期的那样工作,我也需要什么时候 0 或 1 来表示不是素数

c# console console-application
1个回答
2
投票

您有3个条件需要检查:

如果 n 是 0 或 1,则不是素数

如果 n 是 2,质数

如果n大于2,你需要检查它们是否有约数(如果有,则它们不是素数)

int n = int.Parse(Console.ReadLine());
bool result= true;

if (n < 0)
{
    n = -n;
}
if (n<2)
    result = false;
else if (n==2)
    result = true;
else
    for (int i = 2; i < n; i++)
    {
        if (n % i == 0)
        {
            result = false;
            break;
        }
    }

if (result)
{
    Console.WriteLine("Prime");
}
else
{
     Console.WriteLine("Not prime");
}
© www.soinside.com 2019 - 2024. All rights reserved.