Pagini recente » Cod sursa (job #238475) | Cod sursa (job #36339) | Cod sursa (job #1322808) | Cod sursa (job #1569526) | Cod sursa (job #2448156)
#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 N) {
int counter = 0;
for (int i = 5; N / i > 0; i *= 5)
counter += N / i;
return counter;
}
/*
int binSearch(int Left, int Right, long long 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 binSearch(int Left, int Right, int P) {
int Mid, Result = - 1;
while (Left <= Right) {
Mid = (Left + Right) / 2;
if (findTrailingZeros(Mid) == P)
Result = Mid;
if (findTrailingZeros(Mid) < P)
Left = Mid + 1;
else
Right = Mid - 1;
}
return Result;
}
int main() {
fin >> P;
fout << binSearch(MIN_N, MAX_N, P);
}