筛选法找质数(信息学奥赛一本通-2040)
【题目描述】
用筛法求出n(2≤n≤1000)以内的全部质数。
【输入】
输入n。
【输出】
多行,由小到大的质数。
【输入样例】
10
【输出样例】
2
3
5
7
【题解代码】
#include<bits/stdc++.h>
using namespace std;
const int N = 1e3 + 10;
int nums[N];
void isprime(int m)
{
for (int i = 2; i * i <= m; i++)
{
if (!nums[i])
{
for (int j = i * i; j <= m; j += i)
{
nums[j] = 1;
}
}
}
}
int main()
{
int n; cin >> n;
isprime(n);
for (int i = 2; i <= n; i++)
{
if (!nums[i]) cout << i << endl;
}
return 0;
}