Cod sursa(job #110442)

Utilizator DastasIonescu Vlad Dastas Data 26 noiembrie 2007 19:26:23
Problema Economie Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <iostream>
#include <algorithm>

const int maxn = 1001;
const int maxval = 50001;

FILE *in = fopen("economie.in","r"), *out = fopen("economie.out","w");

int n;
int a[maxn];

int fol[maxval];
int answ[maxn];

int main()
{
    fscanf(in, "%d", &n);

    for ( int i = 1; i <= n; ++i )
        fscanf(in, "%d", &a[i]);

    std::sort(a+1, a+n+1);

    int cnt = 0;

    for ( int i = 1; i <= n; ++i )
    {
        if ( !fol[ a[i] ] )
            answ[++cnt] = a[i];

        for ( int j = 2; a[i]*j <= maxval; ++j )
        {
            int k = a[i];
            fol[k] = 1;

            if ( k*j < maxval )
                fol[k*j] = 1;
        }
    }

    fprintf(out, "%d\n", cnt);
    for ( int i = 1; i <= cnt; ++i )
        fprintf(out, "%d\n", answ[i]);

	return 0;
}