Cod sursa(job #3165634)
Utilizator | Philippe Colta philippe | Data | 6 noiembrie 2023 17:14:09 |
---|---|---|---|
Problema | Factorial | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.52 kb |
#include <fstream>
using namespace std;
ifstream cin("fact.in");
ofstream cout("fact.out");
int p;
long long nz(long long n) {
int cnt = 0;
int p = 5;
while (p <= n) {
cnt += n / p;
p *= 5;
}
return cnt;
}
int main() {
cin >> p;
long long st = 1;
long long dr = 1e9;
long long mij;
while (st <= dr) {
mij = (st + dr) / 2;
if (nz(mij) < p) {
st = mij + 1;
} else {
dr = mij - 1;
}
}
if(nz(st) == p)cout<<st;
else cout<<-1;
}