本题主要注意运行时间的问题,测试点四在第10000个所以设置数组的时候不能太大也不能太小。
#include<stdio.h>
#include <iostream>
#include<iomanip>
#include<math.h>
using namespace std;
int A(int a) {
int flag = 1;
for (int i = 2;i <= sqrt(a);i++) {
if (a % i == 0) {
flag = 0;
return 0;
break;
}
}
if (flag)
return 1;
}
int main()
{
int n, m;
cin >> m >> n;
int q = 2;
int s[10001];
int i=0, k, o = 0, p = 1;
while (true)
{
if (A(q)) {
s[i] = q;
i++;
}
q++;
if (i == 10000)
break;
}
for (i = m;i <=n;i++) {
if (i==n) {
cout << s[i-1];
}
else if (p++ < 10) {
cout << s[i-1]<<" ";
}
else {
cout << s[i-1] << endl;
p = 1;
}
}
return 0;
}