Cod sursa(job #137248)

Utilizator katakunaCazacu Alexandru katakuna Data 17 februarie 2008 10:34:43
Problema Factoriale Scor 0
Compilator cpp Status done
Runda preONI 2008, Runda 4, Clasele 5-8 Marime 0.87 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;
}