【欧拉质数筛选法 模版】

题目描述

求N(<= 20000000)以内的质数。

输入

N

输出

从小到大输出N以内的质数

样例输入

10

样例输出

2 3 5 7
 1 #include<stdio.h>
 2 using namespace std;
 3 bool vis[20000005];int a[1300005];
 4 int main()
 5 {
 6     int n,k=0;
 7     scanf("%d",&n);
 8     for(int i=2;i<=n;i++)
 9     {
10         if(!vis[i])a[++k]=i,printf("%d ",i);
11         for(int j=1;j<=k && a[j]*i<=n;j++)
12         {
13             vis[a[j]*i]=true;
14             if(i%a[j]==0)break;
15         }
16     }
17     return 0;
18 }

 

posted @ 2017-06-16 11:10  PIPIBoss  阅读(326)  评论(0编辑  收藏  举报