1013. 数素数 (20)
题目
令Pi表示第i个素数。现任给两个正整数M <= N <= 104,请输出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
想法
简单直接的把从零到N的素数都找出来,然后注意十个一输出的格式,把第M到第N的输出就好了。
代码
#include <stdio.h>
#include <math.h>
int prime(int num)
{
int i,k;
k=sqrt(num);
for(i=2;i<k+1;i++)
{
if(num%i==0)
return 0;
}
return 1;
}
int main(void)
{
int i,M,N,num=1;
int output[10000];
scanf("%d %d",&M,&N);
for(i=0;i<N;i++)
{
num++;
while(!prime(num))
{
num++;
}
output[i]=num;
}
for(i=M;i<N;i++)
{
printf("%d",output[i-1]);
printf((i - M + 1) % 10 ? " " : "\n");
}
printf("%d",output[N-1]);
return 0;
}