Pagini recente » Cod sursa (job #2609822) | Cod sursa (job #2834850) | Cod sursa (job #652510) | Cod sursa (job #1455227) | Cod sursa (job #2346727)
#include <cstdio>
#include <stdlib.h>
using namespace std;
FILE *in_file = fopen("fact.in", "r");
FILE *out_file = fopen("fact.out", "w");
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, unsigned 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()
{
unsigned int p; // range ( 0 -> 4.000.000 )
int ans = 0;
fscanf(in_file, "%lu", &p);
ans = binarySearch(1, 2100000000, p);
fprintf(out_file, "%d", ans != 0 ? ans : -1 );
return 0;
}