Cod sursa(job #852973)

Utilizator dariusdariusMarian Darius dariusdarius Data 11 ianuarie 2013 22:50:03
Problema Factoriale Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.13 kb
#include<stdio.h>
using namespace std;
int s,x,p,i,y,n,m,l,t,j,k,d[100],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};
long long nr[100000];
int main()
{
    freopen("factoriale.in","r",stdin);
    freopen("factoriale.out","w",stdout);
    scanf("%d%d",&n,&k);
    for(i=1;i<=n;++i)
    {
        scanf("%d",&x);
        for(j=1;v[j]<=x;++j)
        {
            s=0;
            p=v[j];
            while(p<=x)
            {
                s=s+x/p;
                p=p*v[j];
            }
            d[v[j]]=d[v[j]]+s;
        }
    }
    m=1;
    nr[m]=1;
    for(i=1;i<=100;++i)
        if(d[i]!=0&&d[i]%k!=0)
            for(j=1;j<=k-d[i]%k;++j)
            {
                t=0;
                for(l=1;l<=m;++l)
                {
                    y=t+nr[l]*i;
                    t=y/10;
                    nr[l]=y%10;
                    
                }
                while(t!=0)
                {
                    ++m;
                    nr[m]=t%10;
                    t=t/10;
                }
            }
    for(i=m;i>=1;--i)
        printf("%lld",nr[i]);
    printf("\n");
    return 0;
}