Cod sursa(job #1289715)

Utilizator ghimpeleSeteanu Radu ghimpele Data 10 decembrie 2014 10:53:00
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <stdio.h>

const char IN[] = "fact.in", OUT[] = "fact.out";

int P;

int count ( int x ) {

	int ret = 0;
	for ( int p = 5; p <= x; p *= 5 )
		ret += x / p;
	return ret;
}

bool test( int x ) {
    return count(x) < P;
}

int search ( int L ) {

	int i, step;

	for ( step = 1; step < L; step <<= 1 );
	for ( i = 0; step; step >>= 1 )
		if ( i + step <= L && test(i + step) )
			i += step;

	if ( count(i + 1) == P )
		return i + 1;
	else
		return -1;
}

int main() {

	freopen(IN, "r", stdin);
	freopen(OUT, "w", stdout);

	scanf("%d", &P);
	printf("%d\n", search(1000000000));
	return 0;
}