将已知质数存放于内存表格中,通过试除表格内的质数求质数。
通过计数器可实现优化。
由于表格只用到sqrt(n),可进行准并行计算。
#include
#include
#include
int main()
{
long int n;
long int patn[600000]={2,3};
long int i = 0;
for(n=2;n<1000000;n++)
{
long int j;
int flag;
flag = 1;
for(j=1;j
n) { break; }
if(n % patn[j] == 0) {flag = 0; break;}
}
if (flag == 1) {
printf("%8ld ",n);
i++;
patn[i]=n;
if (i%8 == 0) { printf("\n"); }
}
}
printf("\nTotal: %d\n",i);
}