令Pi表示第i个素数。现任给两个正整数M <= N <= 10^4,请输出PM到PN的所有素数。
输⼊格式:
输⼊在⼀⾏中给出M和N,其间以空格分隔。
输出格式:
输出从PM到PN的所有素数,每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
#include<iostream>
#include<vector>
using namespace std;
bool isprime(int m)//定义布尔类型判断是否是素数的函数
{
for(int i=2;i*i<=m;i++)//只要有一个不满足就返回false
if(m%i==0) return false;
return true;
}
int main()
{
int m,n,i,j=1;
cin>>m>>n;
vector<int>v(10000);
for(i=2;i<10000;i++)
{
if(isprime(i))
{
v[j]=i;//记录第一个素数,第二个...直到第n个
j++;
}
}
j=1;
for(i=m;i<=n;i++)
{
if(i!=0)
printf("%d",v[i]);
if(j%10!=0)
{
if(i!=n)
cout<<" ";//不是10的倍数输出一个空格,末尾不加空格
}
else cout<<"\n";//逢10换行
j++;
}
return 0;
}