欧拉计划007

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.

      这段代码中求质数的方法是在那种老厚的算法书里翻到的,提高效率。

posted @ 2013-03-24 21:29  要我安静从容  阅读(151)  评论(0编辑  收藏  举报