Pagini recente » Cod sursa (job #517914) | Cod sursa (job #3186774) | Cod sursa (job #2902462) | Cod sursa (job #2507017) | Cod sursa (job #2448125)
#include <fstream>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
#define MAX_N 500000001
#define MIN_N 0
int P;
int findTrailingZeros(int P) {
int counter = 0;
for (int i = 5; i <= P; i *= 5)
counter += P / i;
return counter;
}
long long binSearch(int Left, int Right, int P) {
int Mid = (Left + Right) / 2;
if (Left > Right)
return -1;
if (P == findTrailingZeros(Mid))
return P;
if (P < findTrailingZeros(Mid))
return binSearch(Left, Mid - 1, P);
else
return binSearch(Mid + 1, Right, P);
}
int main() {
fin >> P;
fout << binSearch(MIN_N, MAX_N, P);
}