Cod sursa(job #281180)

Utilizator EstiarteManuel Esanu Estiarte Data 13 martie 2009 21:18:27
Problema Factorial Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include<stdio.h>
FILE *in=fopen("fact.in","rt");
FILE *out=fopen("fact.out","wt");
long int p;
long int zero(long int n,long int f)
{
 long int total,nr;
 if(n==5) return 1;
 total=0;
 nr=f;
 while(nr<n)
 {
	total=total+n/nr;
	nr=nr*f;
 }
 return total;
}
long int solutie(long int a,long int b)
{
 long int mijloc,num;
 mijloc=(a+b)/2;
 num=zero(mijloc,5);
 if(num==p) return mijloc;
 else
	 if(num<p)

		return solutie(mijloc+1,b);
	 else
		return solutie(a,mijloc-1);

}
int main()
{
 long int n,k;
 fscanf(in,"%ld",&p);
 if(p==0) fprintf(out,"1");
 else if(p==1) fprintf(out,"5");
 else if(p==2) fprintf(out,"10");
 else
 {
	k=solutie(15,2000000000);
	while(p==zero(k,5)) k--;
	fprintf(out,"%ld",k+1);

 }
 return 0;
}