Cod sursa(job #49861)

Utilizator shaderMarian Neacsu shader Data 6 aprilie 2007 15:07:09
Problema Factorial Scor 85
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <fstream.h>
typedef unsigned long int longplus;
longplus x,t,i;

longplus zero(longplus n){
  longplus cinci=5, sum=0;
  if (n==0) return 1;
  if (n<5) return 0;
  while (cinci<=n) {
    sum+=n /cinci;
    if (cinci>0xffffffff/5) break;
    cinci*=5;
  }
  return sum;
}

longplus cauta(longplus p, longplus u){
longplus m;
  if (p>u) return p;

  m=(p+u)/2;
  if (zero(m)>=x) return cauta(p,m-1);
  else return cauta(m+1,u);
}


int main(){
  ifstream f("fact.in");
  f>>x;
  f.close();

  ofstream g("fact.out");
  t=cauta(1,4000000000)-5;
  for (i=t;i<=t+10;i++)
    if (zero(i)==x) break;
  if (x==0) g<<1;
  else if (x<5) g<<0;
  else g<<i;
  g.close();
  return 0;
}