Pagini recente » Borderou de evaluare (job #1511225) | Borderou de evaluare (job #1720595) | Borderou de evaluare (job #1723377) | Cod sursa (job #444905) | Cod sursa (job #1024276)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
long long nrdiv5(int nr);
long long p, n, k, st, dr, nrd;
int main()
{
f>>p;
st=1;
dr=2000000000;
if(p==0)
g<<1;
else
while(st<=dr)
{
k=(dr+st)/2;
nrd=nrdiv5(k);
if(nrd == p)
{
if(k%10>5)
k=k/10*10+5;
else if(k%10<5)
k=k/10*10;
g<<k;
break;
}
else
if(nrd > p)
{
dr=k-1;
}
else
{
st=k+1;
}
}
if(dr<st)
{
g<<-1;
}
return 0;
}
long long nrdiv5(int nr)
{
long long pr=5,ex=0;
while(pr<=nr)
{
ex+=nr/pr;
pr*=5;
}
return ex;
}