Cod sursa(job #953474)

Utilizator narcis_vsGemene Narcis - Gabriel narcis_vs Data 26 mai 2013 12:37:28
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <fstream>

#define In "fact.in"
#define Out "fact.out"

using namespace std;
long k;

inline int F(int x)
{
    int m, s;
    for(m = 5,s = 0 ;m <= x;s += x/m,m *= 5);
    return s;
}

inline int Binary_Search(int left,int right)
{
    int middle, x;
    while(left <= right)
    {
        middle = (left + right) >>1;
        x = F(middle);
        if(x==k)
            return middle;
        if(x<k)
            left = middle + 1;
        else
            right = middle -1;
    }
    return 0;
}

int main()
{
    ifstream f(In);
    f>>k;
    f.close();
    ofstream g(Out);
    if(k==0)
        k = 1;
    else
    {
        k = Binary_Search(1,1000000000);
        k -= k%5;
        if(!k)
            k = -1;
    }
    g<<k<<"\n";
    g.close();
    return 0;
}