Pagini recente » Cod sursa (job #3236256) | Cod sursa (job #2112922) | Cod sursa (job #1865488) | Cod sursa (job #897706) | Cod sursa (job #1611126)
#include<fstream>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
unsigned long long p,nr;
unsigned long long step=2000000000,index;
unsigned long long nrz(unsigned long long n);
unsigned long long cautbin(unsigned long long p);
int main()
{
unsigned long long c;
fin>>p;
if(p!=0)
c=cautbin(p);
else
c=0;
if(p==0)
fout<<1;
else if(nrz(c)==p)
fout<<c;
else
fout<<-1;
return 0;
}
unsigned long long nrz(unsigned long long n)
{
nr=0;
while(n>=5)
{
nr+=n/5;
n/=5;
}
return nr;
}
unsigned long long cautbin(unsigned long long val)
{
unsigned long long start =0;
for(;step;step>>=1)
{
index=start+step;
if(nrz(index)>val) continue;
if(nrz(index)<=val)
start=index;
}
return start-start%5;
}