洛谷P5736 【深基7.例2】质数筛

题目描述

输入 nn 个不大于 10510^5 的正整数。要求全部储存在数组中,去除掉不是质数的数字,依次输出剩余的质数。

输入格式

第一行输入一个正整数 nn,表示整数个数。

第二行输入 nn 个正整数 aia_i,以空格隔开。

输出格式

输出一行,依次输出 aia_i 中剩余的质数,以空格隔开。

样例 #1

样例输入 #1

5
3 4 5 6 7

样例输出 #1

3 5 7

提示

数据保证,1n1001\le n\le1001ai1051 \leq a_i \leq 10^5

题解

#include <bits/stdc++.h>
using namespace std;

int n, t;

bool is_prime(int a) {
	if (a < 2)
		return false;
	for (int i = 2; i * i <= a; i++) {
		if (a % i == 0)
			return false;
	}
	return true;
}

int main() {
	cin >> n;
	for (int i = 0; i < n; i++) {
		cin >> t;
		if (is_prime(t))
			cout << t << ' ';
	}
	return 0;
}