【题目描述】
用筛法求出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/