用c++程序求100到200间的全部素数有几种方法?程序分别是什么?

 我来答
Fans_Men
推荐于2017-12-15 · TA获得超过418个赞
知道小有建树答主
回答量:65
采纳率:0%
帮助的人:86.9万
展开全部
//两种方法: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;
}
byzxybd
2011-06-29 · TA获得超过455个赞
知道小有建树答主
回答量:731
采纳率:100%
帮助的人:424万
展开全部
判断一个数是x否为素数就是 2 - sqrt(x) 之间是否有整除;没有就是素数。
再从100 - 200 做一个循环,判断每个数是否为素数。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
szbvae
2011-06-29 · 超过21用户采纳过TA的回答
知道答主
回答量:381
采纳率:0%
帮助的人:160万
展开全部
定型循环和不定型循环,数组和指针等几种方法都行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式