Cod sursa(job #1430005)

Utilizator EmanuelFarcauEmanuel Farcau EmanuelFarcau Data 7 mai 2015 18:58:29
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <cstdio>
#include <vector>
#include <algorithm>

int nr_zerouri  (int x){
	int contor = 0;
	
	while (x) {
		contor = contor + x/5;
		x /= 5;
	}
	return contor;
}

int caut (int p){
	int inceput = 1;
	int sfarsit = 500000000;
	int mijloc = 0;
	
	while(inceput <= sfarsit){
		mijloc = (inceput +sfarsit)/2;
		int nrZ=nr_zerouri(mijloc);
		if ( nrZ > p){
			sfarsit = mijloc-1;
		}else if ( nrZ < p){
			inceput = mijloc+1;
		}
		else{
			return mijloc / 5 *5;
		
		}
	
	}
	return -1;

}

int main () {

	freopen("fact.in", "r", stdin);
	freopen("fact.out", "w", stdout);

	int p;
	
	scanf("%d", &p);
	if( p == 0) printf("1");
	else printf("%d", caut(p));
	
	
	
	
return 0;	
}