Cod sursa(job #1690726)

Utilizator Alexa2001Alexa Tudose Alexa2001 Data 15 aprilie 2016 16:16:20
Problema Factoriale Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <cstdio>

using namespace std;

int ans[100000],i,n,k,j,z,p,x,ap[104];

void inm(int ans[], int x)
{
     int i,t=0;

     for(i=1; i<=ans[0] || t; ++i)
     {
         t=ans[i]*x+t;
         ans[i]=t%10;
         t/=10;
     }
     ans[0]=i-1;
}

int main()
{
    freopen("factoriale.in", "r", stdin);
    freopen("factoriale.out", "w", stdout);

    scanf("%d%d", &n, &k);

    for(i=1; i<=100; ++i) ap[i]=0;

    for(i=1; i<=n; ++i)
    {
        scanf("%d", &z);
        for(j=2; j<=z; ++j)
        {
             x=j;
             for(p=2;x>1 && p*p<=j; ++p)
             while(x%p==0) x/=p, ++ap[p];
             if(x!=1) ++ap[x];
        }
    }

    ans[1]=ans[0]=1;

    for(i=1; i<=100; ++i)
    if(ap[i]%k!=0)
    for(j=1; j<=k-ap[i]%k; ++j)
    inm(ans, i);

    for(i=ans[0]; i; --i) printf("%d", ans[i]);
    printf("\n");

    return 0;
}