求素数

#include <stdio.h>
#include <time.h>
#include <windows.h>
#define MAX_NUM 10000  
int main(int argc,char* argv[])
{
    clock_t startime;
    clock_t endtime;
    startime = clock();
    {  
    unsigned int numbers[MAX_NUM+1]={0};  
    unsigned int i,j,flag=0;  
    for(i=2;i<=MAX_NUM;i++)  
    {  
        flag=0;  
        if(numbers[i]==0)  
        {  
            for(j=i+i;j<=MAX_NUM;j+=i)  
            {  
                numbers[j]=1;  
                //printf(" %d",j);  
                flag=1;  
            }  
            //if(flag==1)printf(":%d的倍数,被筛除\n",i)//;  
        }  
    }  
    //printf("\n------------素数列表------------\n");  
    printf("%d以内的所有素数",MAX_NUM);  
    for(i=2;i<=MAX_NUM;i++)  
    {  
        if(numbers[i]==0)printf(" %d",i);  
    }  
    putchar('\n');  
}
    endtime = clock();
    printf("求%d以内所有素数程序运行时间:%dms\n",MAX_NUM, endtime-startime);
    return 0;
}

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页