无循环获取素数

时间:2014-02-20 15:37:33

标签: c#

我试图在不使用循环的情况下确定数字是否为素数。 以下是我到目前为止的情况。我的争吵是我不知道这是否会涵盖所有可能的输入值。

bool isPrime(int Value)
{
   if ((Value % 2 == 0) || (Value % 3 == 0) || (Value % 5 == 0) || (Value % 7 == 0))
       return false;
   else
       return true;
}

2 个答案:

答案 0 :(得分:1)

这肯定不会涵盖全系列的素数。您目前正在检查您的输入是否除以4个素数。为了确保你的数字是素数,它必须不能被任何其他素数整除(13,17,23等)。循环的更糟糕的替代方法是递归,但我认为你不应该选择后者。

You can use this method

答案 1 :(得分:1)

如果你可以将可能的输入的范围定义为某些东西,比如100以下的非零整数,那么像这样的东西可能是最简单的解决方案

int[] primes = new int[] { 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97 } ;

bool isPrime(int Value)
{
    return primes.Contains(Value);
}