Cod sursa(job #250981)

Utilizator AndreiDDiaconeasa Andrei AndreiD Data 1 februarie 2009 15:11:07
Problema Factoriale Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 1.19 kb
#include <stdio.h>      
     
int prim[123],x,n,k,i,d,e,j,rez,p;      
     
void fact(int a)      
{      
    e=0;      
    d=2;      
    while(a%d==0)      
    {      
        a/=d;      
        e++;      
    }      
    if (e>0)      
    prim[d]+=e;      
    d=3;      
    while(a!=1)      
    {      
        e=0;      
        while(a%d==0)      
        {      
            a/=d;      
            e++;      
        }      
        if (e>0)      
        prim[d]+=e;      
    d+=2;      
    }      
}      
     
     
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=2;j<=x;++j)      
              fact(j);      
    }      
    rez=1;      
    for (i=2;i<=100;++i)      
          if (prim[i]>0)      
               {
                  p=1;
                  for (j=2;j<=k-k%prim[i];++j)   
                        p*=i;   
                        rez*=p;   
               }      
    printf("%d", rez);                     
    return 0;      
}