题目:输出正整数a到b之间的所有素数。
思路:1,我们知道素数的定义,就是除了1和它本身外没有别的因数。也就是说在从2到n-1的数它都不可能整除。
#include <iostream>
using namespace std;
int main()
{
int a,b;
cin>>a>>b;
for(int i=a;i<=b;i++)
{
int flag=0;//在这里必须是局部变量,因为如果是全局变量,flag每次就不会回到0
for(int j=2;j<i;j++)
{
if(i%j==0)
{
flag=1;
}
}
if(flag==0)
{
cout<<i<<endl;
}
}
return 0;
}
需要注意的就是flag的定义那里,我一开始把flag定义成了全局变量,所以输出就一直只有一个数目。
因为如果flag=0的定义不在for循环里的话,在循环完全结束前,flag的值就不会回到0.