令 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
结尾无空行
小仙女的思路:这道题就是把很多很多素数存在一个数组里面,需要第几个到第几个间的素数就根据数组坐标打印素数就可以(tip:一开始到测试点4的时候过不去,后来在网上查了查,是数组太小的原因,好像要105000+才可以)
小仙女的代码:(数组的长度是看了别人才知道的qaq)
#include <stdio.h>
int main()
{
int m,n,num,i,t=0;
int a[107000];
scanf("%d %d",&m,&n);
for(num=2;num<107000;num++)
{
for(i=2;i*i<num;i++)
{
if(num%i==0)
{
break;
}
}
if(i*i>num)
{
a[t]=num;
t++;
}
}
for(i=m-1;i<n-1;i++)
{
printf("%d",a[i]);
if((i-m+2)%10==0)
{
printf("\n");
}
else
{
printf(" ");
}
}
printf("%d",a[i]);
return 0;
}