Pagini recente » Monitorul de evaluare | Cod sursa (job #1803672)
#include <stdio.h>
#include <stdlib.h>
using namespace std;
int nr0(int n){
int nr=0;
int p=5;
while(p<=n){
nr+=n/p;
p*=5;
}
return nr;
}
int main()
{
FILE *fin, *fout;
int n,p5,p,st,dr,mij,zero;
fin=fopen("fact.in","r");
fout=fopen("fact.out","w");
fscanf(fin,"%d",&p);
st=1;
dr=100000000;
while(st<dr){
mij=(st+dr)/2;
zero=nr0(mij);
if(zero>p)
dr=mij-1;
else if(zero<p)
st=mij+1;
else
st=dr=mij;
}
if(nr0(st)!=p)
fprintf(fout,"-1");
else
fprintf(fout,"%d",st);
fclose(fin);
fclose(fout);
return 0;
}