求1≤n≤100000000间有多少个素数

来源:百度知道 编辑:UC知道 时间:2024/05/13 16:55:02
能告诉算法就行,或是有什么定理,当然是要高效的用时少的
最好是C语言的
关键是时间要少啊

上网查下米勒罗宾,概率算法,
四次验证即可,
http://zhidao.baidu.com/question/62509590.html

算法和什么语言没有关系。筛选法求素数是最快的方法,楼上的两位给出的代码效率实在是太低了!!!!

要说大素数,查表很快,Eratosthenes筛选法也并不是最快的,网上都有,随便找

#include<stdio.h>
#include<math.h>
int main()
{
int i = 2;
while(i++ < 1000000000)
{
int j;
if(i>7)
{
if(i%2==0) continue;
if(i%3==0) continue;
if(i%5==0) continue;
if(i%7==0) continue;
}
for(j=2;j<=(i/j);j++)
{
if(!(i%j))
{
break;
}
}
if(j>(i/j))
{
printf("%d\n",i);
}
else
{
continue;
}
}
return 0;
}

100000000这么大的数系统肯定要运行半天啊
太简单了,首先要定义一个函数用于判断一个数是否是素数。然后把1-100000000中的值一一带入此函数中判断就是了,再其中设法设个计数器用于判断素数的个数。代码如下:
#include "stdio.h"
#includ