#include <iostream>
using namespace std;
bool P[10000001];
int a[100000001];
int Size;
void pd();
bool isp(int m) {
if (m <= 1) {
return false;
}
for (int i = 0; i < Size && a[i] * a[i] <= m; i++) {
if (m % a[i] == 0) {
return false;
}
}
return true;
}
void pd(int n) {
Size = 0;
for (int i = 2; i <= n; i++) {
P[i] = true;
}
for (int i = 2; i <= n; i++) {
if (P[i]) {
a[Size++] = i;
}
for (int j = 0; j < Size && i * a[j] <= n; j++) {
P[i * a[j]] = false;
if (i % a[j] == 0) {
break;
}
}
}
}
int main() {
int n;
cin >> n;
pd(n);
int m;
for (int i = 0;i < n; i++ ){
cin >> m;
if (isp(m)) cout << m << " ";
}
return 0;
}
找了半天都没找到问题在哪里,求大佬帮助