Cod sursa(job #582370)

Utilizator anarogozAna Rogoz anarogoz Data 15 aprilie 2011 11:46:22
Problema Factorial Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.54 kb
#include<stdio.h>
#include<math.h>
long long ok(long long med)
{
 long long pt=5,z=0;
 while(med/pt!=0)
 {
  z=z+med/pt;
  pt=pt*5;
  }
return z;
}
long long bs(long long st, long long dr, long long p)
{
long long med,last=-1;
while(st<=dr)
{
 med=st+(dr-st)/2;
 if(ok(med)<p)
	st=med+1;
 else
	{
	last=med;
	dr=med-1;
	}
}
return last;
}

int main()
{
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
long long p,sol,st=1,dr=1ll<<60;
scanf("%lld",&p);
sol=bs(st,dr,p);
printf("%lld",sol);
return 0;
}