2879: 【例60.3】 找素数

内存限制:64 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:3 解决:3

题目描述

输出正整数a到b之间的所有素数。

输入

输入$a$,$b$。对于所有数据,$1≤a≤b≤20000$。

输出

由小到大,输出$a$到$b$之间的所有素数。每个数占一行。

样例输入 复制

5 10

样例输出 复制

5
7

提示

#include<iostream>
using namespace std;
#define maxn 5000001
#define ll long long
bool f[maxn];
int a,b;
void findPrimes(int n){
    int i;
    int cnt = 0;
    ll j;
    f[0]=f[1]=1;
    for(i=2;i<=n;++i) {
        if(!f[i]) {
            for(j = (ll)i*i; j<=n;j+=i) {
                f[j] = 1;
            }
        }
    }
    return ;
}
main()
{
    cin>>a>>b;
    findPrimes(b);
    for(int i=a;i<=b;i++)
        if(!f[i]) cout<<i<<endl;
    return 0;
}