Cod sursa(job #2072525)

Utilizator copanelTudor Roman copanel Data 21 noiembrie 2017 22:12:09
Problema Factorial Scor 95
Compilator c Status done
Runda Arhiva de probleme Marime 0.49 kb
/* ( ‘_>’) */
#include <stdio.h>

#define L 28

int nr5(int n) {
	int div5 = 0;
	while (n >= 5)
		div5 += n /= 5;
	return div5;
}

int main() {
	FILE *fin, *fout;
	int p, pas, r;

	fin = fopen("fact.in", "r");
	fscanf(fin, "%d", &p);
	fclose(fin);

	pas = 1 << L;
	r = 0;
	while (pas != 0) {
		if (nr5(r + pas) < p)
			r += pas;
		pas >>= 1;
	}

	fout = fopen("fact.out", "w");
	if (r > 0)
		r++;
	if (nr5(r) == p)
		fprintf(fout, "%d", r);
	else
		fprintf(fout, "-1");
	fclose(fout);

	return 0;
}