Cod sursa(job #48279)

Utilizator gabitzish1Gabriel Bitis gabitzish1 Data 4 aprilie 2007 17:06:56
Problema Factorial Scor 25
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include<fstream.h>

long nr;
int n;


void citire()
{
  ifstream in("fact.in");
  in>>n;
  in.close();
}



long nrz( long c )
{
     long p = 0;
     while( c )
     {
            p += c/5;
            c /= 5;
     }
     return p;
}

long cautare()
{
  long long p, u, a, ok=1, exa, m;
  p=1; u=10000000;
  a=(p+u)/2;
  m=nrz(a);
  while (ok)
    {
	exa=a;
      if (m==n) ok=0;
	 else if (m>n)  { u=a; a=(p+u)/2;}
	       else  { p=a; a=(p+u)/2; }
      m=nrz(a);
      if (exa==a) break;
    }
  if (ok==0) return a;
   else return -1;
}

void reduc()
{
  long long m;
  m=nrz(nr);
  while (m==n)
    {
      nr--;
      m=nrz(nr);
    }
  nr++;
}

int main()
{
  citire();
  ofstream out("fact.out");
  nr=cautare();
  if (nr!=-1)
  reduc();
  if (!nr) nr++;
  out<<nr;
  out.close();
  return 0;
}