Cod sursa(job #1679462)

Utilizator aimrdlAndrei mrdl aimrdl Data 7 aprilie 2016 23:18:10
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.54 kb
#include <stdio.h>

long long find (int p) {
	long long l = 0, r = 999999999;

	while (r - l > 1) {
		long long mid = (l + r) / 2;
		long long nZeros = 0, aux = mid;
		while (aux) {
			nZeros += aux / 5;
			aux /= 5;
		}

		if (nZeros >= p) {
			r = mid;
		} else {
			l = mid;
		}
	}

	long long nZeros = 0, aux = r;
	while (aux) {
		nZeros += aux / 5;
		aux /= 5;
	}

	return (p == nZeros) ? r : -1;
}

int main (void) {
	freopen("fact.in", "r", stdin);
	freopen("fact.out", "w", stdout);

	int p;
	scanf("%d", &p);

	printf("%lld", find(p));

	return 0;
}