题目
令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>
#include <cmath>
using namespace std;
int judge(int n)//判断是否是素数
{
for(int i=2;i<=sqrt(n);i++)
if(n%i==0)
return 0;
return 1;
}
int main()
{
int m,n;//输入范围
int count=0;//计数器
int num=0;//换行控制器
vector<int> v;//设置动态数组
cin>>m>>n;
for(int i=2;count<=n;i++)//添加素数至动态数组中
{
if(judge(i)==1)
{
count++;
v.push_back(i);
}
}
for(int i=m-1;i<=n-1;i++)//输出范围内的素数
{
num++;
if(num%10==0)
{
cout<<v[i]<<endl;
}
else
{
if(i==n-1)//注意:最后一行的最后一个数字后面不能加上空格
cout<<v[i];
else
cout<<v[i]<<' ';
}
}
return 0;
}
来源:CSDN
作者:Yk_0311
链接:https://blog.csdn.net/Yk_0311/article/details/104077241