数素数
题目描述
令 P(i) 表示第 i 个素数。现任给两个正整数 M≤N≤$10^4$,请输出 P(M)到 P(N)的所有素数。
输入格式
输入在一行中给出 M 和 N,其间以空格分隔。
输出格式
输出从P(M)到P(N)的所有素数,每 10 个数字占 1 行,其间以空格分隔,但行末不得有多余空格。
输入样例
1 | 5 27 |
输出样例
1 | 11 13 17 19 23 29 31 37 41 43 |
问题解决
解题思想
此题的关键在于输出格式的控制。单独设置一个变量j记录刚输出的素数是已输出素数的第几个,当j是10的倍数时(即j可以被10整除)输出换行。设置一个变量s来控制同一行各数之间的空格问题,这一方式在之前的题目中很常见,对于本题,注意每次换行时s应重置一下。还有一点要提醒大家,我一开始在main()函数中的for循环外添加了一行
1 | printf("\n"); |
导致代码评测时有一个测试点没有通过,删去后全部通过。本人分析应为:若最后一行若恰好输出10个整数会导致重复换行问题,如果大家有确定的原因,欢迎大家留言指正,谢谢!
代码示例(C)
1 |
|
题目来源:PAT乙级1013
作者:CHEN, Yue
单位:浙江大学