先把素数筛出来,然后在输入的范围内枚举输出即可
主要是筛素数枚举的范围,主要是第10000个素数有多大,搜了一下是104729,否则一直会是19分
#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <algorithm>
using namespace std;
int is_prime(int x)
{
int flag=1;
for(int i=2;i<=sqrt(x);i++)
{
if(x%i==0) flag=0;
}
return flag;
}
int main()
{
int m,n;
cin>>m>>n;
int p[10010];
int cnt=1;
p[1]=2;
for(int i=3;i<=104729;i++)
{
if(is_prime(i))
{
p[++cnt]=i;
}
}
int t=0;
for(int j=m;j<=n;j++)
{
++t;
cout<<p[j];
if(t%10==0) cout<<endl;
else if(j!=n) cout<<" ";
}
return 0;
}