//两种方法:1、暴力;2、筛选法求
素数。
//第一种:
暴力法,用循环从100到200的每个数判断一下,是素数就输出。
#include <iostream>
#include <cmath>
using namespace std;
bool prime(int num)
{
int max=(int)sqrt((double)num),i;
for(i=2;i<=max&&num%i;i++);
if(i>max) return 1;
else return 0;
}
int main()
{
int i;
for(i=100;i<=200&&prime(i)==0;i++);
cout<<i;
for(i++;i<=200;i++)
if(prime(i)) cout<<" "<<i;
cout<<endl;
return 0;
}
//第二种:筛选法求素数,原理:素数的倍数一定不是素数。从2开始,把它的倍数都去掉
#include <iostream>
#include <cmath>
#define max 200
using namespace std;
bool prime[max+1];
int main()
{
int mid=(int)sqrt((double)max);
prime[0]=prime[1]=1;
for(int i=2;i<=mid;i++)
for(int j=i+i;j<=max;j+=i)
prime[j]=1;
int i;
for(i=100;i<=200&&prime[i];i++);
cout<<i;
for(i++;i<=200;i++)
if(prime[i]==0) cout<<" "<<i;
cout<<endl;
return 0;
}