牛客PAT乙级(Basic Level)真题 - 1003 数素数
数素数 (20)
时间限制:1000 ms 内存限制:32768 KB 代码长度限制:100 KB 判断程序:Standard
题目描述:
令Pi表示第i个素数。现任给两个正整数M <= N <= 10000,请输出PM到PN的所有素数。
输入描述:
输入在一行中给出M和N,其间以空格分隔。
输出描述:
输出从PM到PN的所有素数,每10个数字占1行,其间以空格分隔,但行末不得有多余空格。
测试用例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
测试用例2:
10000 10000
对应输出:
104729
代码:
//牛客PAT 1003 数素数
#include <stdio.h>
#include <math.h>
#define LIMIT 10000
int main()
{
int M, N, k=0, n=0, flag=0, prime[LIMIT];
scanf("%d %d", &M, &N);
for(int i=2; ; i++)
{
flag = 0;
for(int j=2; j<=sqrt(i); j++)
{
if( i % j == 0)
{
flag = 1;
break;
}
}
if(!flag)
{
prime[k] = i;
k++;
}
if(k==LIMIT) break;
}
for(int i=M; i<=N; i++)
{
printf("%d", prime[i-1]);
n++;
if(!(n%10))
printf("\n");
else if(i<N)
printf(" ");
}
return 0;
}