Cod sursa(job #137911)

Utilizator katakunaCazacu Alexandru katakuna Data 17 februarie 2008 16:45:01
Problema Factoriale Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
#include<stdio.h>   
  
long long nr,j,a,m[101][10],l,t[101],n,k,i,v[101],max,aux;   
  
int p[50]={0,2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101};   
  
int main(){   
  
FILE *f=fopen("factoriale.in","r");   
fscanf(f,"%lld %lld",&n,&k);   
  
  for(i=1;i<=n;i++){   
  fscanf(f,"%lld",&v[i]);   
   if(v[i]>max)max=v[i];   
  }   
  
fclose(f);   
  
 for(i=2;i<=max;i++){   
 aux=i;   
  
 j=1;   
   while(aux!=1){   
  
  
      while(aux%p[j]==0){   
      aux/=p[j];   
      m[i][0]++;   
      m[i][ m[i][0] ]=p[j];   
  
      }   
  
   j++;   
   }   
  
 }   
  
  
 for(i=1;i<=n;i++){   
  
   for(j=2;j<=v[i];j++){   
  
     for(l=1;l<=m[ j ][0];l++){   
     t[ m[ j ][l] ]++;   
     }   
  
   }   
  
 }   
  
 nr=1;   
  
  for(i=2;i<=max;i++){   
  
   if(i!=0&&t[i]%k!=0){   
   a=(k-t[i]%k);   
   nr*=i*a;   
   }   
  
  }   
  
  
 FILE *g=fopen("factoriale.out","w");   
 fprintf(g,"%lld",nr);   
  
 fclose(g);   
  
  
return 0;   
}