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;
}
哪里错了 展开
#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;
}
哪里错了 展开
3个回答
展开全部
基本没问题。
我在vs2008里将k=int(sqrt(m))改成
k=int(sqrt((double)m))就通过了。因为sqrt函数没有针对整数的重载,所以sqrt(m)不知道调用哪个重载版本。
我在vs2008里将k=int(sqrt(m))改成
k=int(sqrt((double)m))就通过了。因为sqrt函数没有针对整数的重载,所以sqrt(m)不知道调用哪个重载版本。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
k=int(sqrt(m));改为 k=m/2会好些;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询