Cod sursa(job #294772)

Utilizator darkdudeAndrei Barsan darkdude Data 2 aprilie 2009 19:14:08
Problema Factorial Scor 15
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include<stdio.h>

long put(long a, int p)
{
 long x=a;
 a=1;
 for(int i=0; i<p; i++)
	a*=x;

 return a;
}

long numar_zerouri(long a)
{
 long n5=a/5;

 long m;

 int i;
 for(i=2; i<8; i++)
	{
	 m=put(5,i);
	 n5+=a/m;
	}

 return n5;
}

int main()
{
 long p,n;
 int i,j;

 freopen("fact.in","r",stdin);
 scanf("%ld",&p);
 fclose(stdin);
 freopen("fact.out","w",stdout);

 if(p==0) { printf("1"); fclose(stdout); return 0; }

 int lo,hi,mid,last=-1,t;

 for(lo=1, hi=12000; lo <= hi;)
	{
	 mid = lo+(hi-lo)/2;
	 t = numar_zerouri(mid);
	 if(t == p)
		{
		 while(t==p)
			 t=numar_zerouri(mid--);
		 last=mid+2;
		 break;
		}
	 if(t<p) last = mid, lo = mid+1;
	 else hi=mid+1;
	}

 printf("%d",last);

 fclose(stdout);
 return 0;
}