007.前六个质数是2,3,5,7,11和13,其中第6个是13.
第10001个质数是多少?
——————————————————————————————————————————
代码如下:
#include <stdio.h> #include <stdlib.h> #define N 10000 int main (void) { int i,j,k=0; int prime[N+1],a[1005]; for(i=2;i<=N;i++) prime[i]=1; for(i=2;i*i<=N;i++) { if(prime[i]==1) { for(j=2*i;j<=N;j++) { if(j%i==0) prime[j]=0; } } } for(i=2;i<N;i++) // 输出质数 { if(prime[i]==1) a[k++]=i; } printf(" %d\n",a[1000]); return 0; }
输出结果:7927.
这段代码中求质数的方法是在那种老厚的算法书里翻到的,提高效率。