Cod sursa(job #731598)

Utilizator Marius_mFMI-M2 Marius Melemciuc Marius_m Data 8 aprilie 2012 15:29:38
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include<cstdio>
#include<iostream>
#include<cmath>

using namespace std;

const int Nmax = 0x3f3f3f3f/2;

int P;

int nr_zerouri(int n)
{
	int k = n/5,z = 1;
	for( int i = 2 ; z != 0 ; i++)
	{
		z = (int)(n/pow((double)5,i));
		k = k + z;
	}
	return k;
}

int CautBin(int x,int y)
{
	int mid=(x+y)>>1;                        // mid=(x+y)/2;
	if(x>y)
		return -1;
	if(nr_zerouri(mid) == P)
		return mid;
	else
		if(nr_zerouri(mid)>P)
			return CautBin(x,mid-1);
		else
			return CautBin(mid+1,y);
}

int main()
{
	int N,a,b,c;
	FILE *in,*out;
	in=fopen("fact.in","r");
	out=fopen("fact.out","w");
	fscanf(in,"%d",&P);
	if( P == 0)
		fprintf(out,"1");
	else
	{
		a=0;
		b=Nmax;
		N=CautBin(a,b);
		if(N == -1)
			fprintf(out,"-1");
		else
		{
			N=N-N%5;
			fprintf(out,"%d",N);
		}
	}
	fclose(in);
	fclose(out);
	return 0;
}