Pagini recente » Cod sursa (job #504522) | Cod sursa (job #2326193) | Cod sursa (job #262081) | Cod sursa (job #65653) | Cod sursa (job #2346728)
#include <cstdio>
using namespace std;
FILE *in_file = fopen("fact.in", "r");
FILE *out_file = fopen("fact.out", "w");
const int SIZE = 1000000001;
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;
}