Pagini recente » Cod sursa (job #1448484) | Cod sursa (job #155169)
Cod sursa(job #155169)
#include<stdio.h>
#include<math.h>
int main(){
int P,max,zeros,minus,amax0,cupramax,i,cupr=0;
float amax;
FILE *fin=fopen("fact.in","r");
FILE *fout=fopen("fact.out","w");
fscanf(fin,"%d",&P);
max=P*5;
amax=max;
while(floor(amax)>4){
cupr++;
amax/=5;
}//calculam cea mai mare putere a lui 5 ce se cuprinde in max
zeros=0;
for(i=2;i<cupr;i++){
zeros+=(floor(max/pow(5,i)))*(i-1) - floor((max/pow(5,i)/5))*(i-1);
}
zeros+=(cupr-1)*(max/pow(5,cupr))+P;//calculam numarul de zerouri in plus
if(zeros==0) fprintf(fout,"%d",max);
else{
minus=0;
while(minus<zeros-P){
amax0=max;
while(amax0%5==0){
amax0/=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;
}