Cod sursa(job #164594)

Utilizator tm_raduToma Radu tm_radu Data 24 martie 2008 15:57:33
Problema Factoriale Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <stdio.h>

int s[101];
int n, k;
int i, j, h, g;
int nrp, pr[101], exp[101];
long long int sol;

int main()
{
    freopen("factoriale.in", "r", stdin);
    freopen("factoriale.out", "w", stdout);
    scanf("%d %d", &n, &k);
    for ( i = 2; i <= 100; i++ )
        for ( j = i; i*j <= 100; j++ )
            s[i*j] = 1;
    for ( i = 2; i <= 100; i++ )
        if ( !s[i] ) nrp++, pr[nrp] = i;
        
    for ( i = 1; i <= n; i++ )
    {
        scanf("%d", &h);
        for ( j = 1; j <= nrp; j++ )
        {
            g = pr[j];
            while ( h >= g ) exp[j]+=h/g, g *= pr[j];
        }    
    }
    sol = 1;
    for ( i = 1; i <= nrp; i++ )
    {
        g = (k-(exp[i]%k))%k;
        for ( j = 1; j <= g; j++ )
            sol *= pr[i];
    }
    printf("%lld\n", sol);    
    return 0;
}