Pagini recente » Cod sursa (job #1822657) | Cod sursa (job #2368218) | Cod sursa (job #2156405) | Cod sursa (job #16955) | Cod sursa (job #1889654)
#include <bits/stdc++.h>
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
long long p;
long long checker(long long x)
{
long long s=0;
long long q=5;
while(x/q)
{
s+=(x/q);
q*=5;
}
return s;
}
long long cautare_binara(long long MAX,long long Min)
{
while(Min<MAX)
{
long long mijloc=(MAX+Min)/2;
long long nr = checker(mijloc);
if(nr==p)
return mijloc;
else if(nr>p)
MAX=mijloc-1;
else
Min=mijloc+1;
}
if(MAX<Min)
return -1;
}
int main()
{
f>>p;
if(p==0)
g<<1;
else
{
long long MAX=1000000000;
long long MIN=5;
long long w=cautare_binara(MAX,MIN);
while(w%5)
w--;
long long s=0;
long long q=5;
while(w/q)
{
s+=(w/q);
q*=5;
}
if(s<p)
g<<-1;
else
g<<w;
}
}