Pagini recente » Cod sursa (job #1455965) | Cod sursa (job #1132699) | Cod sursa (job #2622351) | Cod sursa (job #3282172) | Cod sursa (job #2346729)
#include <cstdio>
using namespace std;
FILE *in_file = fopen("fact.in", "r");
FILE *out_file = fopen("fact.out", "w");
const int SIZE = 2000000001;
int findTrailingZeros(int n){
int counter = 0;
for(int i = 5; n/i >= 1; i *= 5 )
counter += n/i;
return counter;
}
int binarySearch(int left, int right, int p)
{
int mid, temp, k;
while( left <= right )
{
mid = (left + right)/2;
temp = findTrailingZeros(mid);
if( temp == p ){
k = mid;
right = mid-1;
}
else if( temp > p )
right = mid -1;
else
left = mid + 1;
}
return k;
}
int main()
{
int p, ans;
fscanf(in_file, "%d", &p);
ans = binarySearch(1, SIZE, p);
fprintf(out_file, "%d", ans != 0 ? ans : -1 );
return 0;
}