我试图在不使用循环的情况下确定数字是否为素数。 以下是我到目前为止的情况。我的争吵是我不知道这是否会涵盖所有可能的输入值。
bool isPrime(int Value)
{
if ((Value % 2 == 0) || (Value % 3 == 0) || (Value % 5 == 0) || (Value % 7 == 0))
return false;
else
return true;
}
答案 0 :(得分:1)
这肯定不会涵盖全系列的素数。您目前正在检查您的输入是否除以4个素数。为了确保你的数字是素数,它必须不能被任何其他素数整除(13,17,23等)。循环的更糟糕的替代方法是递归,但我认为你不应该选择后者。
答案 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);
}