Pagini recente » Cod sursa (job #1732857) | Cod sursa (job #2258946) | Cod sursa (job #2094148) | Cod sursa (job #226870) | Cod sursa (job #2448148)
#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 N) {
int counter = 0;
for (int i = 5; N / i >= 1; i *= 5)
counter += N / i;
return counter;
}
int binSearch(int Left, int Right, int P) {
int Mid = (Left + Right) / 2;
if (Left > Right)
return -1;
if (P == findTrailingZeros(Mid))
return Mid;
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);
}