求100----200以内的素数。
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int a,b,c;
bool prime;
for(a=100;a<=200;a=a+1)
{
prime=true;
b=int(sqrt(a));
for(c=2;c<=b;c++) 注意:此时有=,以121为例,121为11^2,此时c=11,b=11,不是素数,prime应该为false,故此时应为<=.(错误见下)
{
if(a%c==0)
prime=false;
}
if(prime==true)
cout<<a<<endl;
}return 0;
}
若代码如下(错误):
prime=true;
b=int(sqrt(a));
for(c=2;c<b;c++) 若要用<,可写为c<a,运行结果正确。
{
if(a%c==0)
prime=false;
2、100以内的素数
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int a, b, i;//a为每个数,b为根号a,i为因子
for (a = 2; a <= 100; a++)
{
b = int(sqrt(a));
for (i = 2; i <= b; i++)
{
if (a % i == 0) break;
}
if (i > b)//是针对i=3而言的
cout << a << endl;//疑问:这个地方的cout是针对上面两种情况吗
}return 0;
}