Cod sursa(job #2077413)

Utilizator moltComan Calin molt Data 28 noiembrie 2017 00:04:45
Problema Factorial Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;

ifstream in("fact.in");
ofstream out("fact.out");

int f(int nr)
{
    int put5 = 5,k = 0;
    while (nr / put5 >= 1)
    {
        k += nr / put5;
        put5 *= 5;
    }
    return k;
}

int caut_bin(int p)
{
    int a = 1,b = pow(10,8) + 1,sol = -1;
    int mij;
    while (a <= b)
    {
        mij = (a + b) / 2;
        int pos = f(mij);
        if (pos > p)
            b = mij - 1;
        else if (pos == p)
        {
            sol = mij;
            b = mij - 1;
        }
        else
            a = mij + 1;
    }
    return sol;
}

int r,p,pas,lim = pow(10,8);

int main()
{
    in>>p;
    r = caut_bin(p);
    //  pas = 1 << 20;
    //while (pas != 0)
    //  {if (r + pas <= lim && fct(r + pas) == p)
    //     r += pas;
    //  pas >>= 1;}
    //if (r == 0)
    //  out<<-1;
    //else
    out<<r;
    // out<<fct(p);
    return 0;
}