Pagini recente » Cod sursa (job #722054) | Cod sursa (job #1878344) | Cod sursa (job #1700502) | Cod sursa (job #1516838) | Cod sursa (job #2335019)
#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;
if(n == 0){
out << 1;
}else{
long long int sol = -1, left = 0, right = 1000000000;
while (left < right) {
long long int mid = (left + right) / 2;
if (legendre(mid) == n) {
sol = mid;
break;
}
if (legendre(mid) > n) {
right = mid - 1;
}
if (legendre(mid) < n) {
left = mid + 1;
}
}
if(sol != -1){
while(sol % 5 != 0) sol -= 1;
}
out << sol;
}
}