C++编程问题:用穷举法找出1到100的质数并显示出来。使用do...while循环语句实现。

#include<iostream>usingnamespacestd;voidmain(){inti,j,n,m;i=2;do{m=1;n=i/2;j=2;do{if(... #include<iostream>
using namespace std;
void main()
{
int i,j,n,m;
i=2;
do
{m=1;n=i/2;j=2;
do
{if(i%j==0)
{m=0;
break;
}
j++;
}
while(j<=n);
if(m)
cout<<i<<" ";
i++;
}
while(i<101);
}
上面的程序运行结果是从3开始,为什么不从2开始呢?2也是质数啊。。。高手帮帮忙,学弟在此谢过大家了!
展开
 我来答
小橙橙620
2012-03-12 · 超过18用户采纳过TA的回答
知道答主
回答量:32
采纳率:0%
帮助的人:24.3万
展开全部
i=2时,i%j = 0 ,所以m就被赋值为0,然后后面的cout<<i<<"" 语句就不会被执行。
追问
在i=2;语句后加上cout<<i<<" ";执行结果正确,但这样修改对吗?总觉得不太恰当···
追答
方法很多啦,你也可以把if(i%j==0)改成if(i%j==0&&i!=2)试试。
又见花雨蓝
推荐于2017-11-25 · TA获得超过907个赞
知道答主
回答量:97
采纳率:0%
帮助的人:60万
展开全部
1.while
#include <iostream>
using namespace std;
int main () {
inti,j,n,m;
i=2;
while(i<101)
{
m=1,n=i/2;j=2;
while(j<=n)
{
if(i%j==0)
{
m=0;
break;
}
j++;
}
if(m)
cout<<i<<" ";
i++;
}
}

2.do....while
#include<iostream.h>
void main()
{
inti,j,n,m;
i=2;
do
{
m=1;
n=i/2;
j=2;
do
{
if(i%j==0)
{
m=0;
break;
}
j++;
}
while(j<=n);
if(m)
cout<<i<<" ";
i++;
}
while(i<101);
}

3.for
# include<iostream.h>
void main()
{
inti,j,n,m;
for(i=2;i<101;i++)
{
m=1;
n=i/2;
for(j=2;j<=n;j++)
{
if(i%j==0)
{
m=0;
break;
}
}
if(m)
cout<<i<<" ";
}
}

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 Press any key to continue
三种方法我都运算了一遍,都没有错误的。望采纳,谢谢!
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式