Cod sursa(job #2075802)
Utilizator | Matei Trandafir MateiTrandafir | Data | 25 noiembrie 2017 17:56:28 |
---|---|---|---|
Problema | Factorial | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.44 kb |
#include <fstream>
inline long long nr0(long long n) {
long long s = 0;
while (n > 0) {
s += (n /= 5);
}
return s;
}
int main() {
std::ifstream in("fact.in");
std::ofstream out("fact.out");
long long p, r = 0, pas = 1 << 30;
in >> p;
p--;
while (pas > 0) {
if (nr0(r + pas) <= p) r += pas;
pas >>= 1;
}
r++;
if (nr0(r) == p + 1) out << r;
else out << -1;
return 0;
}