Cod sursa(job #497262)
#include<stdio.h>
int m;
int cinci(long n)
{
m=0;
while(n)
{
m=m+(n/5);
n=n/5;
n-=n%5;
}
return m;
}
int main()
{
freopen ("fact.in","r",stdin);
freopen ("fact.out","w",stdout);
int p,i,c,st=0,dr=400000015;
scanf("%d",&p);
//caut binar rezultatul care sa se potriveasca
if(p)
while(st<dr)
{
if(cinci((st+dr)/2)==p) st=dr=((st+dr)/2)-((st+dr)/2)%5;
else if(cinci((st+dr)/2)>p) dr=(st+dr)/2;
else if(cinci((st+dr)/2)<p) st=(st+dr)/2;
}
if(!p) printf("1");
if(st==dr) printf("%d",dr);else if(st>dr) printf("-1");
return 0;
}