1013. 数素数 (20)
2017-06-28 13:23
232 查看
1013. 数素数 (20)
求素数思路:
我的博客:1007. 素数对猜想 (20)
求素数思路:
我的博客:1007. 素数对猜想 (20)
/* coded by indere 题目: 令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 分析: 与‘1007素数对猜想’思路一样来求素数,存入数组中,然后根据输入的索引值来输出答案。 注意:格式的问题。每十个为一行,最后一行的末尾不要输出‘ ’。 */ #include<stdio.h> #define MAXSIZE 10000 void setprimeArr(int *primeArr); /*求得素数数组*/ void printprimeArr(int *primeArr,int index1, int index2); /*按索引输出素数*/ int main() { int primeArr[MAXSIZE] = { 0 }; setprimeArr(primeArr); int index1, index2; scanf("%d %d", &index1, &index2); printprimeArr(primeArr, index1-1, index2); return 0; } void setprimeArr(int *primeArr) { /*求得素数数组*/ primeArr[0] = 2; primeArr[1] = 3; primeArr[2] = 5; int size = 3; int num = 6; int judge = 0; while (primeArr[MAXSIZE - 1] == 0) { for (int i = 0; i < size && primeArr[i] * primeArr[i] <= num; i++) { if (num % primeArr[i] == 0) { /*num不是素数*/ judge = 1; break; } } if (judge == 0) { /*num没有其他约数,即素数*/ primeArr[size] = num; ++size; } ++num; judge = 0; } } void printprimeArr(int *primeArr, int index1, int index2) { /*按索引输出素数*/ int temp = 1; for (int i = index1; i < index2; i++) { if (temp >= 10 || i == index2 - 1) { printf("%d\n", primeArr[i]); temp = 0; } else printf("%d ", primeArr[i]); temp++; } }
相关文章推荐
- Java - PAT - 1013. 数素数 (20) 注意超时
- 1013. 数素数 (20)
- PAT 1013. 数素数 (20)
- PAT 乙级练习题1013. 数素数 (20)
- PAT-B 1013. 数素数 (20)
- 1013. 数素数 (20)
- 1013. 数素数 (20)
- 1013. 数素数 (20)
- 1013. 数素数 (20)
- 1013. 数素数 (20) PAT
- 1013. 数素数 (20)
- PAT (Basic Level) Practise (中文)1013. 数素数 (20)
- PAT-乙级-1013. 数素数 (20)
- 1013. 数素数 (20)
- PAT 1013. 数素数 (20)
- 1013. 数素数 (20)
- PAT乙题1013. 数素数 (20)
- 1013. 数素数 (20) C++
- PAT (Basic Level) Practise (中文)- 1013. 数素数 (20)
- PAT乙级1013. 数素数 (20)