1013 数素数 (20分)
令 P i 表示第 i 个素数。现任给两个正整数 M≤N≤10 4 ,请输出 P M 到 P N 的所有素数。
输入格式:
输入在一行中给出 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>
#include <math.h>
int isprime(int n)
{
int i;
for(i=2;i<=sqrt(n);i++)
{
if(n%i==0)
return 0;
}
return 1;
}
int main(void)
{
int i,j=2,m,n;
int prime[20000];
int count=0;
prime[1]=2;
scanf("%d%d",&m,&n);
for(i=3;i<200000;i+=2)
{
if(isprime(i))
prime[j++]=i;
}
for(i=m;i<=n;i++)
{
if(i!=n)
{
if(count%10==9&&count!=0) //第十个素数按如下条件输出
printf("%d\n",prime[i]);
else
printf("%d ",prime[i]);
}
else if(i==n)
printf("%d",prime[i]);
count++;
}
}