Cod sursa(job #147020)

Utilizator alex_dincaDinca Alexandru-Nicolae - UPB alex_dinca Data 2 martie 2008 15:14:15
Problema Factoriale Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include<stdio.h>
#include<math.h>
#define N 101

int v[N], p[N], e[N];
int n, k, i, j, c;
long long rez;

void citire(){
freopen("factoriale.in","r",stdin);
scanf("%d %d\n",&n,&k);
for(i=1; i<=n; i++) scanf("%d",&v[i]);
fclose(stdin);
}

void de(int n){
int d, fm;
d=2;
while(n!=1){
     fm=0;
     while(n%d==0){
          fm++;
          n/=d;
          }
     if(fm) e[d]+=fm;
     d++;
     }                
}

void descomp(){
for(i=1; i<=n; i++)
   for(j=1; j<=v[i]; j++) de(j);
}

int main(){
citire();
descomp();
rez=1;
for(i=1; i<=N; i++)
   if (e[i]) {
      c=e[i]%k;
      if(c==0) c=k;
      rez*=pow(i,k-c);
      }
freopen("factoriale.out","w",stdout);
printf("%lld\n",rez);
fclose(stdout);
return 0;
}