Cod sursa(job #314325)

Utilizator szabibibiOrban Szabolcs szabibibi Data 11 mai 2009 14:42:59
Problema Factorial Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <iostream>
#include <fstream>
#include <math.h>

#define MAXLONG static_cast<long>(pow(2,30))-2+static_cast<long>(pow(2,30))



using namespace std;


long otosok(long n)
{
     long s = 0;
     long ot = 5;
     while (ot<=n)
           {
                 s+=n/ot;
                 ot*=5;
           
           }
     return s;
}


long kiszamol(long e, long v, long p)
{
     long k = (e+v)/2;
     long ize = otosok(k);
     if (ize == p)
        return k-(k%5);
     else if (ize>p)
          return kiszamol(e,k,p);
     else if (ize<p)
          return kiszamol(k,v,p);
}




long megold(long p)
{
    return kiszamol(1,MAXLONG,p);
}
              


int main()
{
    long p,s;
    ifstream f("fact.in");
    f >> p;
    f.close();
    ofstream g("fact.out");
    if (p==0)
       {
             g << 1;
             return 0;
       }
    s = megold(p);
    g << s;
    g.close();
    return 0;
}