1013 数素数 (20 分)

雨燕双飞 提交于 2020-03-01 22:12:07

题目

令 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++;
	}

}

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!