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;
}