Pagini recente » Cod sursa (job #1143450) | Cod sursa (job #5532) | Cod sursa (job #1346318) | Cod sursa (job #257876) | Cod sursa (job #2448124)
#include <fstream>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
#define MAX_N 500000000
#define MIN_N 1
int P;
int findTrailingZeros(int P) {
int counter = 0;
for (int i = 5; i <= P; i *= 5)
counter += P / 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 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);
}