【题目描述】
用筛法求出n(2≤n≤1000)以内的全部质数。
【输入】
输入n。
【输出】
多行,由小到大的质数。
【输入样例】
10
【输出样例】
2
3
5
7

#include<iostream>
#include<cmath>
using namespace std;
int main() {
    int n = 0;
    cin >> n;
    bool flag = true;
    for (int i = 2; i <= n; i++)
    {
        flag = true;
        for (int j = 2; j <= sqrt(i); j++)
        {
            if (i % j == 0)
            {
                flag = false;
                break;
            }
        }
        if (flag)
            cout << i << endl;
    }
    return 0;
}

解释:
第一层循环,我们遍历从2到我们输入的n这些数,第二层循环判断这个数是否为质数.质数的定义是只能被1和它自身整除.
和之前的因数分解几乎一个写法,如果这个数能分解成1x自身以外的因数,那么肯定就不是质数.
上一个题目的链接:https://homeofmjr.top/index.php/archives/37/