Cod sursa(job #155204)

Utilizator ZozelZozo Zozo Zozel Data 11 martie 2008 20:03:27
Problema Factorial Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include<stdio.h>
#include<math.h>

int main(){
int P,max,zeros,minus,amax,cupramax,i;

FILE *fin=fopen("fact.in","r");
FILE *fout=fopen("fact.out","w");
fscanf(fin,"%d",&P);
max=P*5;

zeros=floor(max/5);i=2;
while( floor(max/pow(5,i)) ){
 zeros+=floor(max/pow(5,i));
 i++;
}//calculam numarul de zerouri din max!


if(zeros==0) fprintf(fout,"%d",1);
else{
 minus=0;
 while(minus<zeros-P){
  amax=max;
   while(amax%5==0){
    amax/=5;
    minus++;
   }
 max-=5;
}
 if(max!=0){
  if(minus!=zeros-P) fprintf(fout,"%d",-1);
   else fprintf(fout,"%d",max);
  }
   else fprintf(fout,"%d",1);
 }
fclose(fin);
fclose(fout);
return 0;
}