Pagini recente » Borderou de evaluare (job #1539462) | Borderou de evaluare (job #1719503) | Cod sursa (job #2501236) | Borderou de evaluare (job #1856152) | Cod sursa (job #2501237)
#include <fstream>
#include <algorithm>
using namespace std;
int n;
int v[100005], ans[100005];
bool ok[50005];
//int multiplii(int x)
//{
// for(int k = 1; k <= 50000; k++)
// a[k] = 0;
// for(int i = 1; i <= )
//}
int main()
{
ifstream cin("economie.in");
ofstream cout("economie.out");
cin >> n;
for(int i = 1; i <= n; i++)
cin >> v[i];
sort(v + 1, v + n + 1);
if(v[1] == 1)
{
cout << "1\n1";
return 0;
}
ok[0] = 1;
int k = 0;
for(int i = 1; i <= n; i++)
{
if(ok[v[i]] == 0)
{
ans[++k] = v[i];
for(int j = 1; j <= n; j++)
if(ok[v[j] + v[i]] == 0)
{
ok[v[j] + v[i]] = 1;
// cout << j + v[i] << " ";
}
for(int j = v[i]; j <= v[n]; j += v[i])
if(ok[j] == 0)
{
ok[j] = 1;
// cout << j + v[i] << " ";
}
}
}
cout << k << "\n";
for(int i = 1; i <= k; i++)
cout << ans[i] << "\n";
return 0;
}