Pagini recente » Cod sursa (job #2753402) | Cod sursa (job #409911) | Cod sursa (job #2753185) | Cod sursa (job #1450617) | Cod sursa (job #2736033)
#include <bits/stdc++.h>
using namespace std;
const int NMAX = 1000, NRMAX = 5e4;
int n, x, fr[NRMAX + 1];
bool isPr[NRMAX + 1];
set<int> st;
int main()
{
freopen("economie.in", "r", stdin);
freopen("economie.out", "w", stdout);
scanf("%d", &n);
for(int i = 1; i <= n; ++i) {
scanf("%d", &x), ++fr[x];
if(x == 1) {
printf("1\n1");
return 0;
}
}
int cnt = 0;
for(int i = 2; i <= NRMAX && cnt < n; ++i)
if(!isPr[i]) {
for(int j = 2 * i; j <= NRMAX; j += i) isPr[j] = 1;
if(fr[i]) {
int crt = 0;
for(int j = i; j <= NRMAX; j += i) crt += fr[j], fr[j] = 0;
if(crt) st.insert(i), cnt += crt;
}
}
printf("%d\n", (int)st.size());
for(const auto &el : st) printf("%d\n", el);
return 0;
}