#include<cmath>
using namespace std;
int main()
{
int m, k, i, n = 0;
bool prime;//定义布尔型变量
for (m = 101; m <= 200; m += 2)//遍历101到200的数,步长为2,+2是因为+1会出现偶数,偶数必然不是素数
{
prime = true;//默认为真
k = int(sqrt(m));//算出根号m的整型值去除小数部分保留整数
for (i = 2; i <= k; i++)//遍历2到k的所有值
if (m % i == 0)//数学知识,若m除以1到根号m有余数为零的情况则不是素数
{
prime = false;//不是素数为假
break;//退出内层for循环
}
if (prime)//若内循环没有找到因数则说明为素数,而素数我们假设它是bool变量为真时的结果
{
cout << setw(5) << m;//控制位宽,默认右对齐
n = n + 1;//只有素数的时候加1
}
if (n % 10 == 0)cout << endl;//换行的方式,初值为0 重要的
}
return 0;
}
双for循环,第一个遍历100-200间的数,并输出每一个素数
第二个判断是否为素数