U305199 GSEP 2级样题 筛选质数

GSEP 2级样题 筛选质数

题目描述

最近小明刚刚学到了质数的概念:质数又称素数。一个大于 1 的自然数,除了 1 和它自身外,不能被其他自然数整除的数叫做质数。最小的质数是 2,它也是唯一的偶数质数。最前面的质数依次排列为:2、3、5、7、11 等。小明觉得质数的概念非常有意思,所以他想知道 n 以内所有的质数,但是自己一个一个的找有点浪费时间,聪明的他一下就想到了 C++编程,可以使用编程的方法很快的找到 n 以内的所有质数。

现在要求输入一个正整数 n,输出小于等于 n 的所有质数。

输入格式

输入一行,包含一个正整数 n(1<=n<=100)。

输出格式

输出若干行,每行一个正整数,分别为小于等于 n 的所有质数。

样例 #1

样例输入 #1

10

样例输出 #1

2
3
5
7

#include <iostream>
#include <cmath>

using namespace std;

bool IsPrime(int n) {
	bool r = n >= 2;
	if (r) {
		for (int i = 2; i * i <= n; i++) {
			if (n % i == 0) {
				r = false;
				break;
			}
		}
	}
	return r;
}

int main() {
	int n; cin >> n;
	for (int i = 2; i <= n; i++) {
		if (IsPrime(i)) cout << i << endl;
	}
}
posted @ 2023-10-01 00:23  iamy  阅读(158)  评论(0)    收藏  举报