Cod sursa(job #306364)

Utilizator Anamaria20Cotirlea Anamaria Anamaria20 Data 20 aprilie 2009 15:18:17
Problema Factorial Scor 55
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <stdio.h>

FILE *f,*s;

long long int p,n,st,dr,mij,i,j,rasp;

int numarare(int x)
{
	int nrz=0;
	for(i=5;i<x;i*=5)
		nrz+=x/i;

	return nrz;
}

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

	fscanf(f,"%lld",&p);

	st=1;
	dr=100000000;

	while(st<=dr)
	{
		mij=(st+dr)/2;

		if(numarare(mij)==p)
		{
			rasp=mij;
			break;
		}
		else
		{

			if(numarare(mij)>p)
				dr=mij-1;
			else
				st=mij+1;
		}
	}

	while(rasp%5!=0)
	   rasp--;


	if(p==0)
		fprintf(s,"1");
	else if(rasp==0)
		fprintf(s,"-1");
	else
		fprintf(s,"%lld",rasp);

	fclose(s);

	return 0;
}