Cod sursa(job #370534)

Utilizator GotenAmza Catalin Goten Data 1 decembrie 2009 15:22:49
Problema Factorial Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.47 kb
#include<fstream.h>

long m,a,p,r,l;

long fact(long x)
{
 long b=5,e=0;
 while(x>=b)
 {
  e+=x/b;
  b*=5; 
  }
 return e;
 }

int main()
{
 ifstream f("fact.in");
 ofstream g("fact.out");
 f>>p;
 if(p<0)g<<"-1";
 else
 {
 a=1;
 while(fact(a)<p)a<<=1;
 l=(a>>1)+1;r=a;
 while(l<r)
 {
  m=l+((r-l)>>1);
  if(fact(m)>=p)r=m-1;
  else l=m+1;
  }
 if(fact(r)<p)
  {
   m=r%5;
   r-=m;
   r+=5;
   }
 if(!p)r=1;
 g<<r;
 }
 g.close();
 return 0;
 }