Cod sursa(job #996779)

Utilizator thewildnathNathan Wildenberg thewildnath Data 12 septembrie 2013 16:58:47
Problema Factoriale Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.24 kb
#include<stdio.h>

int a[100002],f[102],v[50]={0,2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101};

int main()
{
    freopen("factoriale.in","r",stdin);
    freopen("factoriale.out","w",stdout);
    int n,k,i,j,x,s,b,nr=1,t,aux,mod;
    scanf("%d%d",&n,&k);
    for(i=1;i<=n;++i)
    {
        scanf("%d",&x);
        j=1;
        while(v[j]<=x)
        {
            s=0;
            b=v[j];
            while(b<=x)
            {
                s+=x/b;
                b*=v[j];
            }
            f[v[j]]=f[v[j]]+s;
            ++j;
        }
    }
    /////////////////////////
    a[nr]=1;
    for(i=1;i<=100;++i)
    {
        mod=f[i]%k;
        if(f[i]!=0&&mod==0)
        {
            for(x=1;x<=k-mod;++x)
            {
                t=0;
                for(j=1;j<=nr;++j)
                {
                    aux=t+a[j]*i;
                    t=aux/10;
                    a[j]=aux%10;
                }
                while(t)
                {
                    ++nr;
                    a[nr]=t%10;
                    t/=10;
                }
            }
        }
    }
    for(i=nr;i>=1;--i)
        printf("%d",a[i]);
    printf("\n");
    return 0;
}