数素数
题目描述
令Pi表示第i个素数。现任给两个正整数M <= N <= 10000,请输出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
解题思路
- 此题笔者认为有两点需要注意,一是素数判定,二是格式输出
- 对于素数判定,已经有很多概述了
- 对于格式判定,笔者采用的是,先用一个变量first判断素数是否是每行首个元素,如果是则输出该元素,否则输出空格+该元素,同时每行最多上线10个元素,用flg判定
//伪代码
//zhicheng
bool is_Prim(int n)
{
for(i->n/i)
{
if(n%2==0) return false;
}
return true;
}
int main()
{
input-->m,n;
int flg=1,first=1;
for(i=2;;i++)
{
判断是否为素数,如果是则进行下面操作
if(判断是否第[m,n]个素数==true)
{
if(该行已经达到10个元素){换行;first,flg重新指该行第一个元素;}
if(first指向该行首元素) { 输出该元素;first,flg指向下一个元素;}
else {输出空格+该元素,flg指向下一个元素;}
}
}
}
日常更新,如有问题请指正
传送门:代码链接