Pagini recente » Cod sursa (job #1996462) | Cod sursa (job #1589156) | Cod sursa (job #846623) | Cod sursa (job #3139906) | Cod sursa (job #604698)
Cod sursa(job #604698)
#include <iostream>
#define Inf 10000000000LL
using namespace std;
int P;
long long N=-1, Pow5[100];
void BuildPow5 ()
{
long long n=5;
Pow5[0]=1;
for (int p=1; n<=Inf; n*=5, ++p)
{
Pow5[p]=n;
}
}
long long Calculate (long long n)
{
long long NZero=0;
for (int p=1; n/Pow5[p]>0; ++p)
{
NZero+=(n/Pow5[p]);
}
return NZero;
}
int main()
{
freopen ("fact.in", "r", stdin);
freopen ("fact.out", "w", stdout);
scanf ("%d", &P);
BuildPow5 ();
long long L=1, R=Inf;
while (L<=R)
{
long long Mid=(L+R)/2, NZero=Calculate (Mid);
if (NZero==P)
{
N=Mid;
R=Mid-1;
}
if (NZero>P)
{
R=Mid-1;
}
if (NZero<P)
{
L=Mid+1;
}
}
printf ("%lld\n", N);
return 0;
}