可能重复:
Program to find prime numbers in C#
prime numbers c#
Most elegant way to generate prime numbers
嗨,大家好。
如何检查数字是否为素数?
答案 0 :(得分:5)
这是我用来写任何时候我需要做的检查:
inline bool isPrime(const int a)
{
if(a == 1) return false;
if(a == 2 || a == 3) return true;
if(!(a & 1)) return false;
if(!((a + 1)%6 || (a-1)%6)) return false;
int q = sqrt((long double)a) + 1;
for(int v = 3; v < q; v += 2)
if(a % v == 0)
return false;
return true;
}
由于一些有用的修剪,它的效果非常好。
答案 1 :(得分:2)
不知道它是否有标准功能,但您总是可以使用Sieve of Eratosthenes建立一个方法(链接:http://en.wikipedia.org/wiki/Sieve_of_Eratosthenes)。很容易实现。
答案 2 :(得分:0)
这里有几个c#版本:LTD Puzzle 4:Finding Prime Numbers 还有f#,c,JavaScript。 PHP等等版本
答案 3 :(得分:0)
如果它可以被1或它自身整除,那么它就是素数。您可以通过认识到除2之外的所有素数都是奇数,或者它可以被2整除来缩短测试次数。此外,5以上的所有素数都可以表示为6n + 1或6n-1,但并非所有数字都生成此方式是素数。此外,该数字的最大可能除数将是其平方根。这些事实足以使测试比你刚测试所有数字直到你要检查的数字更快。