Cod sursa(job #2261691)

Utilizator cinisug@oranek.com[email protected] [email protected] Data 16 octombrie 2018 16:12:41
Problema Factorial Scor 55
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <iostream>
#include <fstream>

using namespace std;

int nulla(int n)
{

    int counter = 0;


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

    return counter;
}


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


        if (nulla(mid) == x)
            return mid;


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


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


   return -1;
}

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

    int n;

    be >> n;


    int er;
    er = binary(0,100000000,n);
    int tmp=-5;


    for(;;)
    {
        if(nulla(er)==n && nulla(er-1)!=n)
        {
            ki << er;
            break;
        }
        else
        {
            --er;
            ++tmp;

        }
        if(tmp>=0)
        {
            ki << "-1";
            break;
        }

    }




    return 0;
}