Cod sursa(job #244716)
#include <cstdio>
using namespace std;
#define MAXN 25000000
long p;
void citire()
{
FILE *fin=fopen("fact.in","r");
fscanf(fin,"%ld",&p);
fclose(fin);
}
long f(long x)
{
long nr=0; long p5=5;
while (p5<=x)
{
nr+=x/p5;
p5*=5;
}
return nr;
}
void rezolvare()
{ long a,b,c;
a=0; b=MAXN;
c=(a+b)/2; int ok=0;
while (a<b)
{
c=(a+b)/2;
long F=f(c);
if (F==p) {a=b+1; ok=1; }
else
if (F<p) {a=c+1;}
else b=c-1;
}
FILE *fout=fopen("fact.out","w");
if (!ok) fprintf(fout,"-1\n");
else {
c=c/5*5;
if (!c) c=1;
fprintf(fout,"%ld\n",c);
}
fclose(fout);
}
int main()
{
citire();
rezolvare();
return 0;
}