Cod sursa(job #110718)
/*
infoarena
http://infoarena.devnet.ro
fact
COD: 006
*/
//5,25,125,625,3125,15625,78125,390625,1953125,9765625,48828125,244140625,1220703125,6103515605
#include <fstream.h>
#include <stdio.h>
int main()
{
ifstream fi("fact.in");
ofstream fo("fact.out");
unsigned long int p,j;
fi>>p;
fi.close();
unsigned long int ls=1220703125,li=5,c=1,div5=0;
while(p!=div5)
{
j=(li+ls)/2;
//div5=j/5+j/25+j/125+j/625+j/3125+j/15625+j/78125+j/390625+j/1953125+j/9765625+j/48828125+j/244140625+j/1220703125;
long x = j,div5 =0;
while(x)
{
div5+=x/5;
x/=5;
}
if(p>div5) {li=j;continue;}
if(p<div5) {ls=j;continue;}
if( p == div5) break;
fo<<"-1/n";
return 0;
}
j=j-j%5;
if(p==div5) fo<<j;
else fo<<"-1";
fo.close();
return 0;
}