Cod sursa(job #314334)

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

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



using namespace std;


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


long long kiszamol(long long e, long long v, long long p)
{
     long long k = (e+v)/2;
     long 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 long megold(long long p)
{
    return kiszamol(1,MAXLONG,p);
}
              


int main()
{
    long long p=0,s=0;
    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;
}