我有个慢的算法
int isPrime(int n)
{
int i, divide;
i = 1;
divide = 0;
while (i <= n) {
if (n % i == 0) divide++;
i++;
}
return (divide == 2);
}
稍快一点的办法
int isPrime(int n)
{
int i, temp;
for (i = 2, temp = (int)sqrt(n); i <= temp;i++) {
if ( n % i == 0) return 0;
}
return 1;
}
10000以内的素数:
#include
main()
{
int n,i;
for(n=3;n<=10000;n++)
{
for(i=2;i
if(i>=n)
printf("%d,",n);
}
}
在前面做了一些辅助算法,所以正式算法里面没有除法、乘法、求余等运算,速度快了很多
小于1000 0000找到664579个素数,用时777毫秒
/////////////////////////////////////////////////////////////////////////////////Document
你的方法都不贴出来,怎么找更快的方法