令表示第 i 个素数。现任给两个正整数 M≤N≤
,请输出
到
的所有素数。
输入格式:
输入在一行中给出 M 和 N,其间以空格分隔。
输出格式:
输出从 到
的所有素数,每 10 个数字占 1 行,其间以空格分隔,但行末不得有多余空格。
输入样例:
5 27
输出样例:
11 13 17 19 23 29 31 37 41 43
47 53 59 61 67 71 73 79 83 89
97 101 103
坚持第四天了,记录一下子~
今天是个特殊的日子,蓝桥和大英赛同时出成绩
放五一假期,明天(30号)就可以离校回家了,所以今天比较浮躁,不想刷题了,但是我觉得人总要去坚持一些很有意义的东西,比如坚持刷题~所以我又哼哧哼哧跑到训练室。到了发现果然不出我所料,大佬们都在卷,我这个小菜鸡还有什么理由不卷!!!
言归正传,这道题麻烦在输出格式上,另外还要注意数据范围,毕竟最多可以输出10000个素数
C++
#include<iostream>
#include<cmath>
using namespace std;
const int N = 10010;
int a[N],k = 1,t;
bool prim(int x){
if(x == 1) return false;
if(x == 2) return true;
for(int i = 2;i<=sqrt(x);i++)
if(x % i == 0) return false;
return true;
}
int main(){
int m,n;
cin>>m>>n;
for(int i = 2;k!=N;i++)
if(prim(i))
a[k++] = i;
for(int i = m;i<n;i++)
{
t++;
if(t % 10 == 0) cout<<a[i]<<endl;
else cout<<a[i]<<" ";
}
cout<<a[n];
}