C++ problem

来源:百度知道 编辑:UC知道 时间:2024/06/17 22:49:16
判断101~200之间有多少个素数.提示:方法为用一个数分别去除2到SQRT(这个数),如果能整除,则不是素数.
我设计得不止到错在哪里
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
for(int n=101,i=2;n<=200;n++)
{for(int i=2;i<=sqrt(n);i++)
if(n%i==0) break;
else continue;

cout<<n<<endl;
}
return 0;
}
请给出正确答案

修改你的.

#include<cmath>
using namespace std;
int main()
{
for(int n=101;n<=200;n++)
{
int i;
for(i=2;i<=sqrt(n);i++)
{
if(n%i==0) break;

}
if(i>sqrt(n))
cout<<n<<endl;
}
return 0;
}

我自己写的

#include<iostream>
#include<cmath>
using namespace std;
bool isPrimer(int n)
{
if(n == 1)
return false;
if(n == 2)
return true;
if(n%2 == 0)
return false;
else
{
int count =int(sqrt(n))+1;
for(int i=3;i<count;i+=2)
if(n%i == 0)
return false;
}
return true;

}

int main()
{
for(int n=1;n<=200;n++)
{
if(isPrimer(n))
cout<<n<<endl;
}
return 0;
}

for(int i=2;i<=sqrt(n);i++) {
if(n%i==0) break;
el