题目描述
给你两个整数l和r,要求你输出l到r范围内的所有素数,范围包含l和r自身。
注意:l和r不超过10的7次方
输入格式
输入文件名:sieve.in
输入一行,两个空格隔开的正整数l和r
输出格式
输出文件名:sieve.out
输出l到r范围内的所有素数,每行一个,数据保证l到r范围内至少能找到1个素数
输入输出样例
输入样例1:
2 20
输出样例1:
2 3 5 7 11 13 17 19
【耗时限制】1200ms 【内存限制】128MB
c++代码如下:
#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<string>
#include<cstring>
#include<sstream>
#include<bits/stdc++.h>
using namespace std;
bool flag[100000000+10]={1,1};
void AIprime(int x){
for(int i=2;i*i<=x;i++){
if(flag[i]==0){
for(int j=i;j*i<=x;j++){
flag[i*j]=1;
}
}
}
}
int main(){
AIprime(10000000);
int l,r;
cin>>l>>r;
for(int i=l;i<=r;i++){
if(flag[i]==0) cout<<i<<"\n";
}
return 0;
}
以上为本人的代码,保证AC!