Cod sursa(job #1280393)

Utilizator BabutaRaresBabuta Rares Mihai BabutaRares Data 1 decembrie 2014 21:48:13
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include<stdio.h>
#include<climits>

FILE *out = fopen("fact.out", "w");
unsigned x;
unsigned countTrailingZeroes(unsigned n)
{
	unsigned i, s = 0;
	for (i = 5; i <= n; i *= 5)
		s += n / i;
	return s;
}
void DEI(unsigned st, unsigned dr)
{
	unsigned mid, z;
	mid = (st + dr) / 2;
	z = countTrailingZeroes(mid);
	if (z == x)
	{
		while (mid % 5) mid--;
		if (mid == 0) mid++;
		fprintf(out, "%u\n", mid);
	}
	else
	{
		if (st == dr) fprintf(out, "-1");
		else
		if (z < x) DEI(mid+1, dr);
		else
			DEI(st, mid-1);
	}
}
int main()
{
	FILE *in, *out;
	in = fopen("fact.in", "r");
	fscanf(in, "%u", &x);
	DEI(0, UINT_MAX);
}