泗阳县住房和建设局网站,云一网站设计,网站维护和建设实报告,适合发朋友圈的营销广告一、题目
令 Pi表示第 i 个素数。现任给两个正整数 M≤N≤10^4#xff0c;请输出 PM到 PN的所有素数。输入格式#xff1a;
输入在一行中给出 M 和 N#xff0c;其间以空格分隔。输出格式#xff1a;
输出从 PM到 PN的所有素数#xff0c;每 10 个数字占 1 行…一、题目
令 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二、代码
核心代码 换行哦 控制空格 —page单独记录 定义了一个page用来单独计数。 因为前面有过经验当输出字数空格,只需要特殊处理i 0就行 所以这里用到 if((page % 10)! 0) cout ; //特殊处理i0不用输出空格而且在page转行后需要page % 10
page;if(page % 10 0) { //查阅资料发现如果是1 10的话这里会多一行。 coutendl;}*分析 1有些人是先遍历一遍将所有的素数保存后再将数组中满足下标m到n的素数找出进行输出也是可以的。 而我是新定义了一个变量k用来直接记录判断素数过程中第几个素数当 mkn时处理输出就行 而且可以及时break节省时间
*检查点错误分析
注意输入1 10时的检查因为新定义了一个page 在原来没有if(k n) {break;
}时会多输入一行。10000指的是啥。 是素数个数。 实数个数肯定要大于它的啊
#include iostream
#include math.h
using namespace std;
#define N 1000000bool isPrime(int n) {if(n 2) return true;for(int i2; i*in; i) {if(n % i 0) {return false; }}return true;
}
int main() {int k0, i, page 0; //k用来从1到10000000进行遍历中记录是第几个素数 page用来换行int m, n;cinmn;for(i2; iN; i) {if(isPrime(i)) {k;if(km kn) {if((page % 10)! 0) cout ; //这里肯定不会执行因为还没有执行到这里已经终结了 couti;if(k n) {break; }page;if(page % 10 0) { //查阅资料发现如果是1 10的话这里会多一行。 coutendl;}}}if( k n ) {break;}}return 0;}