Cod sursa(job #480225)

Utilizator ovydewParvu Ovidiu ovydew Data 27 august 2010 00:12:10
Problema Factorial Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
// Afla ce numar factorial are p cifre de zero la final

#include <fstream>

using namespace std;

int main() {
	FILE* fin = fopen("fact.in","r");
	FILE* fout = fopen("fact.out","w");
	int p, l, r, m;
	fscanf(fin, "%d", &p);
	fclose(fin);
	if (p==0) {
		fprintf(fout, "%d", 1);
		fclose(fout);
		return 0;
	}
	l = 0;
	r = 50000000;
	while (l!=r) {
		m = (l+r) / 2;
		int nr_zero = 0;
		int tmp = m;
		while ( tmp>5) {
			nr_zero += tmp/5;
			tmp = tmp/5;
		}
		if (p>nr_zero)
			l = m;
		else if (p<nr_zero)
			r = m;
		else l = r;
	}
	while (m%5!=0)
		m--;
	fprintf(fout, "%d", m);
	fclose(fout);
	return 0;
}