Problem A: 用筛法求N之内的素数。
Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 537 Solved: 242
[ Submit][ Status][ Web Board]
Description
用筛法求N(<1000)之内的素数。
Input
N
Output
0~N的素数
Sample Input
100
Sample Output
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
#include <iostream>
using namespace std;
int main()
{
int i,j,n,a[1000];
cin>>n;
for(i=1;i<=n;i++)
{
a[i]=i; //将1~n储存在数组a[i]中
}
for(i=2;i<n;i++)
{
for(j=i+1;j<n;j++)
{
if(a[i]!=0&&a[j]!=0)
if(a[j]%a[i]==0)
a[j]=0; //若a[i]不是素数,令a[i]=0;
}
}
for(i=1;i<n;i++)
{
if(a[i]!=0&&a[i]!=1) //只输出素数
{
cout<<a[i]<<endl;
}
}
return 0;
}
#include <iostream>
using namespace std;
int main()
{
int i,j,n,a[1000];
cin>>n;
for(i=1;i<=n;i++)
{
a[i]=i; //将1~n储存在数组a[i]中
}
for(i=2;i<n;i++)
{
for(j=i+1;j<n;j++)
{
if(a[i]!=0&&a[j]!=0)
if(a[j]%a[i]==0)
a[j]=0; //若a[i]不是素数,令a[i]=0;
}
}
for(i=1;i<n;i++)
{
if(a[i]!=0&&a[i]!=1) //只输出素数
{
cout<<a[i]<<endl;
}
}
return 0;
}