Pagini recente » Cod sursa (job #132556) | Cod sursa (job #595853) | Diferente pentru utilizator/stargold2 intre reviziile 60 si 59 | Rating lucas eugene (zenith09) | Cod sursa (job #183945)
Cod sursa(job #183945)
#include <stdio.h>
#define Nmax 1001
int v[Nmax], i, j, N, rez[Nmax];
short uz[50001];
inline void swap(int &x, int &y) { int temp = x; x = y; y = temp; }
void sort(int p, int q)
{
int st = p, dr = q, m = v[(st+dr) >> 1];
while (st < dr)
{
while (v[st] < m) st++;
while (v[dr] > m) dr--;
if (st<=dr) swap(v[st++],v[dr--]);
}
if (st < q) sort(st,q);
if (dr > p) sort(p,dr);
}
int main()
{
freopen("economie.in", "r", stdin);
for (scanf("%d\n", &N), i = 1; i<=N; i++ ) scanf("%d\n", v+i);
sort(1,N);
for (i = 1; i<=N; i++)
if (!uz[v[i]])
{
rez[++rez[0]] = v[i];
uz[v[i]] = 1;
for (j = 2; v[i] * j <= v[N]; j++) uz[v[i] * j ] = 1;
}
for (freopen("economie.out", "w", stdout), printf("%d\n", rez[0]), i = 1; i<=rez[0]; i++)
printf("%d\n", rez[i]);
return 0;
}