Pagini recente » Cod sursa (job #2785285) | Cod sursa (job #1005051) | Cod sursa (job #1746492) | Cod sursa (job #733344) | Cod sursa (job #2334984)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <cmath>
#include <string>
using namespace std;
ifstream in("fact.in");
ofstream out("fact.out");
int power(long long int N, long long int P) {
long long int r = 1;
while (P)
{
if (P % 2 == 1)
r = r * N;
N = N * N;
P = P / 2;
}
return r;
}
int legendre(long long int x) {
long long int j = 1, sum = 0;
while (power(5, j) <= x) {
sum += x / power(5, j);
j++;
}
return sum;
}
int main() {
long long int n;
in >> n;
long long int v[30000];
v[0] = 1;
for (long long int i = n / 2; i < n * 10 ; i++) {
v[i] = i * 5;
}
long long int sol = -1, left = 0, right = n * 10;
while (left <= right) {
long long int mid = (left + right) / 2;
if (legendre(v[mid]) == n) {
sol = v[mid];
break;
}
if (legendre(v[mid]) > n) {
right = mid - 1;
}
if (legendre(v[mid]) < n) {
left = mid + 1;
}
}
out << sol;
}