Mai intai trebuie sa te autentifici.
Cod sursa(job #2232123)
Utilizator | Data | 17 august 2018 14:18:31 | |
---|---|---|---|
Problema | Factorial | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.65 kb |
#include <fstream>
const std::string programName = "fact";
std::ifstream f(programName + ".in");
std::ofstream g(programName + ".out");
int nr(int);
void binary(int, int, int);
int main() {
int P;
f >> P;
binary(1, 1e9, P);
return 0x0;
}
int nr(int k) {
int cnt = 0;
for (int i = 5; i <= k; i *= 5)
cnt += k/i;
return cnt;
}
void binary(int left, int right, int P) {
while (left < right) {
int mid = (left + right) >> 1;
if (nr(mid) >= P)
right = mid;
else
left = mid + 1;
}
if (nr(left) == P)
g << left;
else
g << -1;
}