c++求100到200之间所有素数

#include<iostream>#include<cmath>#include<iomanip>usingnamespacestd;intmain(){intm,k,... #include<iostream>
#include<cmath>
#include<iomanip>
using namespace std;
int main()
{
int m,k,i,n=0;
bool prime;
for(m=101;m<=200;m=m+2)
{
prime=true;
k=int(sqrt(m));
for(i=2;i<=k;i++)
if(m%i==0)
{
prime=false;
break;
}
if(prime)
{
cout<<setw(5)<<m;
n=n+1;
}
if(n%10==0) cout<<endl;
}
cout<<endl;
return 0;
}

哪里错了
展开
 我来答
尘灭之荡尘
2010-08-12 · 超过13用户采纳过TA的回答
知道答主
回答量:29
采纳率:0%
帮助的人:31万
展开全部
问题不大,我用VC++6.0运行的,不过,你得注意这个类型转化的标准写法是(类型名)变量,如k=(int)(sqrt(m));不知你的编译器是什么,如果是非VC++6.0,估计得用二楼或一楼的方法了。
lzhbjz
2010-08-12 · 超过19用户采纳过TA的回答
知道答主
回答量:96
采纳率:0%
帮助的人:30.6万
展开全部
基本没问题。
我在vs2008里将k=int(sqrt(m))改成
k=int(sqrt((double)m))就通过了。因为sqrt函数没有针对整数的重载,所以sqrt(m)不知道调用哪个重载版本。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
100duman
2010-08-12 · TA获得超过966个赞
知道小有建树答主
回答量:1014
采纳率:100%
帮助的人:256万
展开全部
k=int(sqrt(m));改为 k=m/2会好些;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式