Cod sursa(job #754442)

Utilizator catalincocisCatalin Cocis catalincocis Data 2 iunie 2012 01:46:01
Problema Factorial Scor 15
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
//Se da un numar intreg P. Sa se gaseasca cel mai mic numar natural strict pozitiv N pentru care N! are exact P cifre de 0 la sfarsit.

#include <cstdio>
#include <stdlib.h>

int binary(int a, int b, int n)
{
	int c = (a+b)/2;
	int sum = 0;
	int aux = c;
	while (aux > 0)
	{
		aux /= 5;
		sum += aux;
	}

	if (sum < n)
		return binary((c+1),b,n);
	if (sum > n)
		return binary(a,c,n);

	//cauta minimul
	while (sum == n)
	{
		c--;
		aux = c;
		sum = 0;
		while (aux > 0)
		{
			aux /= 5;
			sum += aux;
		}
	}
	return c+1;
}

int main()
{
	FILE *f = fopen("fact.in","r");
	FILE *g = fopen("fact.out","w");

	int n;
	fscanf(f,"%d",&n);
	
	//cautare binara a=1 b=10000
	if (n==0)
		fprintf(g,"1");
	else
	fprintf(g,"%d",binary(1,10000,n));

	/*int sum = 0;
	int x = 0;
	while (sum < n)
	{
		x += 5;
		int plm = x;
		int div = 0;
		while (plm % 5 == 0)
		{
			div ++;
			plm /= 5;
		}
		sum+= div;
	}
	if (x==0) x = 1;
	fprintf(g,"%ld",x);*/
}