题目
令 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
代码
// 1013 数素数 (20 分).cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include <iostream>
#include<cmath>
using namespace std;
//判断是否是质数
bool is_prime(int number) {
if (number == 1) {
return false;
}
if (number == 2) {
return true;
}
for (int i = 2; i <= sqrt(number); i++) {
if (number % i == 0) {
return false;
}
}
return true;
}
int main(){
//输入
int number_1, number_2;
cin >> number_1 >> number_2;
//一共需要输出多少个质数
int total = number_2 - number_1 + 1;
//每行输出统计
int line_number = 0;
//第n个质数
int number_sushu = 0;
int i = 2;
while (total) {
bool judge = is_prime(i);//判断是否是质数
if (judge)
//如果是质数就要++
number_sushu++;
if (number_sushu >= number_1 && judge) {
//此时说明要输出,也要确保一行十个
cout << i;
line_number++;
if (line_number == 10) {
cout << endl;
line_number = 0;
}
else if(line_number < 10 && total != 1)
cout << " ";
total--;
}
i++;
}
}
来源:CSDN
作者:骑小鸟追飞机
链接:https://blog.csdn.net/weixin_41960890/article/details/104583404