今天 看了 《编程珠玑》 看到了 埃氏筛法 令我大为震惊 、、、、、、、、查找素数竟然 这么快
因此将 代码 贴出来 、、、、、、、、、、、
# include<stdio.h>
#include "boost/timer.hpp"
#include<stdlib.h>
int main ()
{
int p=2,n=10000000;
int i;
double time;
bool* x=new bool[10000001];
for ( i=0;i<=n;++i) //初始化 x
{
*(x+i)=1;
}
boost::timer t; // 声明 定时器
while(p<=n)
{
for(i=2*p;i<=n;i=i+p) // 关键部分
{
*(x+i)=0;
}
do
++p;
while(*(x+p)==0);
}
time=t.elapsed();
printf("%8f \n",time);
delete x;
system("pause");
return true;
}
运算速度 1000w 不到0.5秒 快爆了。。。。。。。。。