Cod sursa(job #332527)
#include<fstream>
using namespace std;
int p,n,gasit;
void caut(int a,int b,int &gasit, int &n)
{if(a<b && !gasit)
{int mij=(a+b)/2;
int aux=mij,s=0,div=5;;
while((aux/div)) {s+=aux/div; div*=5;}
if(s==p) {gasit=1;n=mij;}
else if(s>p) caut(a,mij,gasit,n);
else caut(mij+1,b,gasit,n);
}
}
int main()
{ifstream in("fact.in");
ofstream out("fact.out");
in>>p;
if(p==0) out<<"1";
else {gasit=0;caut(1,5*p+1,gasit,n);
if(gasit==0) out<<"-1";
else {int rest=n%5;out<<n-rest;}}
return 0;
}