Cod sursa(job #2831104)
Utilizator | Daniela Vornic danielavornic | Data | 10 ianuarie 2022 20:43:08 |
---|---|---|---|
Problema | Factorial | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.59 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
long p, ans = -1;
int calc(int x) {
int j = 5, sum = 0;
while (j <= x) {
sum += x / j;
j = j * 5;
}
return sum;
}
int main() {
fin >> p;
int l = 1, r = 500000000;
while (l <= r) {
int mid = (l + r) / 2;
int x = calc(mid);
if (x >= p) {
r = mid - 1;
if (x == p) ans = mid;
} else l = mid + 1;
}
fout << ans;
fin.close();
fout.close();
return 0;
}