Cod sursa(job #2263547)

Utilizator vgezaVekov Geza vgeza Data 18 octombrie 2018 19:30:02
Problema Factorial Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <iostream>
#include <fstream>

using namespace std;

int nulla(int n)
{

    int counter = 0;


    for (int i = 5; n >= i; i *= 5)
        counter += n / i;

    return counter;
}


int binary(int l, int r, int x)
{
   if (r != l)
   {
        int mid = (l + r)/2;

 //   cout << mid << endl;
    //if (nulla(mid) == x)
            //return mid;


        if (nulla(mid) >= x)
            return binary(l, mid, x);


        return binary(mid+1, r, x);
   }
   else
   {
       return r;
   }

}

int main()
{
    ifstream be ("fact.in");
    ofstream ki ("fact.out");

    int n;

    be >> n;

    if(n==0)
        {
            ki << 1;
            return 0;
        }



    int er, kii=-1;
    er = binary(1,100000000,n);

    for(int i=er-5;i<=er+5;++i)
    {
        if(nulla(i)==n){
            //if(nulla(er)==n)
                kii=er;
                break;
        }
    }

    
ki<<kii;
    be.close();
    ki.close();


    return 0;
}