PAT Basic 1013. 数素数 (20)(C语言实现)
2017-05-18 23:44
786 查看
题目
令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
思路
也没有什么难度,注意下什么时候开始输出,什么时候换行。和1007. 素数对猜想 (20) (C语言实现)一样,验证素数的时候,利用前面已经算出的素数,能够将验证次数降到最低。
代码
最新代码@github,欢迎交流 ^_^#include <math.h> #include <stdio.h> int main() { int M, N; scanf("%d %d", &M, &N); int primes[10000]; for(int n = 2, count = 0; count < N; n++) { int iprime = 1; for(int j = 0; count > 0 && primes[j] <= sqrt(n); j++) if(n % primes[j] == 0) iprime = 0; if(iprime) primes[count++] = n; } for(int i = M; i < N; i++) { printf("%d", primes[i - 1]); printf((i - M + 1) % 10 ? " " : "\n"); } printf("%d", primes[N - 1]); return 0; }
相关文章推荐
- PAT Basic 1007. 素数对猜想 (20) (C语言实现)
- PAT (Basic Level) Practise (中文)1013. 数素数 (20) C语言
- PATBasic——1013. 数素数 (20)
- PAT Basic 1002. 写出这个数 (20)(C语言实现)
- PAT Basic 1033. 旧键盘打字(20)(C语言实现)
- PAT Basic 1012. 数字分类 (20)(C语言实现)
- PAT(basic level) 1013 数素数(20)
- PAT BASIC LEVEL 1013. 数素数 (20)
- PAT (Basic Level) Practise (中文)1007. 素数对猜想 (20) C语言
- PAT Basic 1027. 打印沙漏(20)(C语言实现)
- PAT (Basic Level) Practise (中文)1013. 数素数 (20)
- PAT Basic 1023. 组个最小数 (20)(C语言实现)
- PAT1013 BASIC:数素数 (20)
- PAT Basic 1037. 在霍格沃茨找零钱(20)(C语言实现)
- PAT Basic 1019. 数字黑洞 (20)(C语言实现)
- PAT Basic 1028. 人口普查(20)(C语言实现)
- PAT Basic 1014. 福尔摩斯的约会 (20)(C语言实现)
- PAT Basic 1009. 说反话 (20)(C语言实现)
- PAT (Basic Level) 1013. 数素数 (20)
- PAT Basic 1032. 挖掘机技术哪家强(20)(C语言实现)