令 Pi 表示第 i 個素數。現任給兩個正整數 M≤N≤10^4,請輸出 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代表的什麼意思。M:第M個素數,N:第N個素數
②就是素數的判斷
【參考代碼】
#include<stdio.h>
#include<math.h>
//判斷素數
int isprime(int x);
int main()
{
int N,M,i,j=1,prime[10000];
prime[0]=2;//2是最小的素數
scanf("%d %d", &M, &N); //M:第M個素數,N:第N個素數
for(i=3;j<10000;i++) //判斷條件是j<10000,是有10000個素數
{
if(isprime(i))
prime[j++] = i;//從 prime[1]開始保存素數
}
j=1; //在這裏用於輸出格式判斷
for(i=M;i<=N;i++)
{
if(j%10 != 0 && i!=N)//我素數不是最後一個也不是一行最後一個
printf("%d ", prime[i-1]);
else if(j==N)//最後一個素數 不需要空格了
printf("%d", prime[i-1]);
else
printf("%d\n", prime[i-1]); //需要換行
j++;
}
}
int isprime(int x)//判斷素數的函數
{
int i;
for(i=2;i<=sqrt(x);i++)
{
if(x%i == 0)
{
return 0;break;
}
}
return 1;
}