Cod sursa(job #585766)

Utilizator antoanelaAntoanela Siminiuc antoanela Data 30 aprilie 2011 11:43:12
Problema NumMst Scor 24
Compilator cpp Status done
Runda Algoritmiada 2011, Runda Finală, Clasele 10-12 Marime 0.8 kb
#include <cstdio>

int n, d, v[10000], h, f, a[10000];
char p[11000];

int main()
{
    freopen("nummst.in","r",stdin);
    freopen("nummst.out","w",stdout);
    scanf("%d",&n);
    int i, c, k, s, x;
    for (i=2; i*i<=n; i++)
    {
        if (!(n%i))
        {
            d=i;
            break;
        }
    }
    s=d;
    d=n/d;
    for (x=2; x<=s; x++)
        for (i=x+x; i<=s; i+=x) p[i]=1;
    for (i=2; i<=s; i++)
        if (!p[i]) a[++f]=i;
    if (s==2)
    {
        h=2;
        v[1]=v[2]=1;
    } else
    {
        c=1;
        for (k=0; k+a[c]<=s; )
        {
            v[++h]=a[c];
            k+=a[c];
            c++;
        }
        c=s-k;
        for (i=1; i<=c; i++) v[++h]=1;
    }
    for (i=1; i<=h; i++) printf("%d ", v[i]*d);
    return 0;
}