思路:
这个题就是用筛法把前10000个素数都求出来,然后按照格式输出。
输出的时候注意最后一个即使不是一行的末位也不用输出空格。
代码:
#include<iostream>
#include<math.h>
using namespace std;
int state[1000001];
int prime[20000];
void findPrime(int n);
void findPrime(int n)
{
int i, j;
for (i = 2; i <= n; i++)
{
if (state[i])
continue;
prime[0]++;
prime[prime[0]] = i;
if (i <= (int)(sqrt(n)))
for (j = i*i; j <= n; j = j + i)
state[j] = 1;
}
}
int main()
{
int n, m, i;
findPrime(110000);
cin >> m >> n;
for (i = m; i <= n; i++)
{
cout << prime[i];
if ((i - m + 1) % 10 == 0)
cout << "\n";
else if(i!=n)
cout << " ";
}
//while (1)
//{
//}
return 0;
}