Pagini recente » Cod sursa (job #431469) | Cod sursa (job #1446627) | Cod sursa (job #783635) | Cod sursa (job #1004809) | Cod sursa (job #2680853)
#include <stdio.h>
int numbersOfZero(int n) {
int prod = 5;
int num = 0;
while(n/prod != 0) {
num += n/prod;
prod *= 5;
}
return num;
}
int binarySearch(int no) {
if(no == 0) {
return 1;
}
int low = 0;
int high = 10000000;
while(low < high) {
int mid = low+(high-low)/2;
int nosOfZero = numbersOfZero(mid);
if(nosOfZero == no) {
int cand = mid-1;
while(numbersOfZero(cand) == no) {
--cand;
}
return ++cand;
}
if(no < nosOfZero) {
high = mid;
} else {
low = mid;
}
}
return -1;
}
int main()
{
freopen("fact.in", "r", stdin);
freopen("fact.out", "w", stdout);
int n;
scanf("%d", &n);
int num = binarySearch(n);
printf("%d\n", n == 0? 1: num);
return 0;
}