Cod sursa(job #250973)

Utilizator AndreiDDiaconeasa Andrei AndreiD Data 1 februarie 2009 14:59:44
Problema Factoriale Scor 10
Compilator c Status done
Runda Arhiva de probleme Marime 1.1 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)   
               if (k%prim[i]!=0)   
                   {
                        p=1;
                        for (j=2;j<=k-k%prim[i];++j)
                              p*=i;
                        rez*=p;
                    }   
    printf("%d", rez);                  
    return 0;   
}