PAT 07-3 求素数

时间:2023-03-08 21:48:09

求素数,这是一个“古老”的问题,每个学过编程的人都应该碰到过,这里是求第M+1到第N个素数,这么经典的问题,当然得给它写上一笔,下面是题设要求及代码实现

 /*
Name:
Copyright:
Author:
Date: 01/04/15 19:19
Description:
令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
*/ #include <stdio.h>
#include <math.h>
#include <stdbool.h> void print(int M, int N);
bool isprime(int n); int main()
{
int M, N; scanf("%d%d", &M, &N);
print(M, N); return ;
} void print(int M, int N)
{
int i, cnt; for(i = , cnt = ; cnt < N; i++)
{
if(isprime(i))
{
cnt++; if(cnt >= M)
{
printf("%d", i);
if((cnt - M + ) % != && cnt < N)
printf(" ");
else
printf("\n");
}
}
}
} bool isprime(int n)
{
int i, tmp; tmp = sqrt(n);
for(i = ; i <= tmp; i++)
{
if(n % i == )
return false;
} return true;
}