Cod sursa(job #85499)

Utilizator igorPirnau Igor igor Data 21 septembrie 2007 17:18:45
Problema Factorial Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include<fstream.h>
#include<math.h>
ifstream f("fact.in");
ofstream g("fact.out");
int main()
{ long long n,p,st,i,dr,sum,ok,k;
  f>>p;
  f.close();
  if(p==0){ g<<"1"; g.close(); return 0; }
  if(p==1){ g<<"5"; g.close(); return 0; }
  ok=1;
  st=(long long)1<<60;
  dr=(long long)1<<64;
  while(ok){ n=(st+dr)>>1;
             sum=0;
             for(k=5;n>=k;k=k*5) sum=sum+n/k;
             if(sum>p) dr=n;
               else if(sum<p) st=n;
                      else ok=0;
                }
  n=n-n%5;
  g<<n;                 
  g.close();
  return 0;
}