Pagini recente » Cod sursa (job #2233409) | Cod sursa (job #2548626) | Cod sursa (job #857405) | Cod sursa (job #1766916) | Cod sursa (job #43420)
Cod sursa(job #43420)
#include <stdio.h>
#include <fstream>
using namespace std;
long exp(long long n)
{
long long exp = 0;
while (n)
{
exp +=(n/5);
n /= 5;
}
return exp;
}
long binarySearch(long long a, long long b, long long p)
{
long long m = (a + b)/2;
long long e = exp(m);
if (a > b) return -1;
if (e > p) return binarySearch(a, m-1, p);
if (e < p) return binarySearch(m+1, b, p);
if (e == p)
{
while (exp(m) == p && m >= a)
m--;
return m+1;
}
}
int main()
{
fstream f, g;
long long n, p;
// INPUTS
f.open("fact.in", ios :: in);
f >> p;
f.close();
n = binarySearch(1, 2000000000, p);
g.open("fact.out", ios :: out);
g << n;
g.close();
return 0;
}