本文主要是介绍PAT 1013. 数素数 (20),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目概述:
令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>int M, N;
int prime[10000] = { 0 };
int iprime;
int count;int main() {scanf("%d%d", &M, &N);for (int i=2,count=0; count<N ; i++){iprime = 1;for (int j = 0; count >0&&prime[j]<=sqrt(i); j++){if (i%prime[j] == 0)iprime = 0;}if (iprime)prime[count++] = i;}for (int i = M; i < N; i++){printf("%d", prime[i - 1]);printf((i - M + 1) % 10 ? " " : "\n");}printf("%d", prime[N - 1]);return 0;
}
这篇关于PAT 1013. 数素数 (20)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!