题目描述
令Pi表示第i个素数。现任给两个正整数M <= N <= 10000,请输出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 <stdio.h>
const int maxn = 10002;
int prime[maxn];
void init()
{
int k = 1;
int flag = 1;
for(int i = 2;k <= 10000;i++)
{
flag = 1;
for (int j = 2; j * j <= i; ++j)
{
if(i % j == 0)
{
flag = 0;
break;
}
}
if(flag)
prime[k++] = i;
}
}
int main()
{
init();
int m,n;
scanf("%d%d",&m,&n);
int s = 0;
for(int i = m;i < n;i++)
{
s++;
if(s < 10)
printf("%d ",prime[i]);
else
{
printf("%d\n",prime[i]);
s = 0;
}
}
printf("%d\n",prime[n]);
}