/*学校:烟台大学计算机学院
作者:刘晓晓
时间:2013.11.25
问题描述:运用循环方法找出0-200间的素数
*/
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
const int M=200;
const int N=((M+1)/2);
int i,j,a[N];
a[0] = 2;
for(i=1; i<(N-1); i++) //初始数组值实现第一步筛选
a[i] = 2*i+1;
for(i=1; i<(N-1); i++) // 第二步筛选
if(a[i]!=0)
for(j=i+1; j<N; j++)
if(a[j]%a[i]==0) // 倍数时置零筛去
a[j]=0;
cout<<"The primer are [2-"<<M<<"]:\n";
for(i=0,j=0; i<N; i++) //显示得到的素数
{
if(a[i]!=0)
{
cout<<setw(5)<<a[i]; //输出素数m,字段宽度为5
j++; //n用来累计输出素数的个数
if(j%10==0) cout<<endl; //输出10个数后换行
}
}
return 0;
}