Pagini recente » Cod sursa (job #1602538) | Cod sursa (job #1120775) | Cod sursa (job #2952844) | Cod sursa (job #1378097) | Cod sursa (job #1253467)
#include <stdio.h>
#include <stdlib.h>
int factorial (int x){
int counter=0;
int five=5;
while(x / five != 0) {
counter=counter + (x/five);
five=five*5;
}
return counter;
}
int main() {
FILE *fin,*fout;
fin=fopen("fact.in","r");
fout=fopen("fact.out","w");
int p,n,cnt=0,ok=1,i,l,r,m;
fscanf(fin,"%d",&p);
if(p == 0) {
fprintf(fout,"1");
}else {
int l=0;
int r = 5*p+1;
int m = (r-l)/2;
int ok=0;
int found;
while (l < r && !ok) {
int nrZeros = factorial(m);
if(nrZeros == p){
ok=1;
found=m;
}
if(nrZeros < p)
l=m+1;
else
r=m;
m=(l+r)/2;
}
if(ok == 1){
fprintf(fout,"%d",found-(found%5));
}
else{
fprintf(fout,"-1");
}
}
return 0;
}