题目描述
用筛法求之N内的素数。
输入
N
输出
0~N的素数
样例输入
100
样例输出
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
思路:用埃式筛法,将1到N的素数记录起来,再输出
# include<iostream>
# include <cmath>
using namespace std;
bool isPrime(int a)
{
for(int b=2;b<=sqrt(a);b++)
{
if(a%b==0)
{
return false;
}
}
return true;
}
int main ()
{
int N;
cin>>N;
int array[100000];
int b=2;
int c=0;
array[0]=1;
array[1]=2;
for(int a=3;a<=200000;a++)
{
if(isPrime(a)==true)
{
array[b]=a;
b++;
}
if(array[b]>N)
{
break;
}
}
for(int a=1;a<=N;a++)
{
if(array[a]>N)
{
break;
}
cout<<array[a]<<endl;
}
}