Cod sursa(job #2301752)

Utilizator UnseenMarksmanDavid Catalin UnseenMarksman Data 13 decembrie 2018 15:11:41
Problema Factorial Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <iostream>
#include <fstream>
#define inf 1e17
using namespace std;

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

unsigned long long putere(unsigned long long x)
{
    if(x<5)
        return 0;
    return x/5+putere(x/5);
}

int main()
{
    unsigned long long p, st=5, dr=inf, res=-1;
    fin>>p;
    if(!p)
    {
        fout<<"1\n";
        return 0;
    }
    while(st<dr)
    {
        unsigned long long put, mid=(st+dr)/2;
        put=putere(mid);
        if(put<p)
        {
            st=mid+1;
        }
        else if(put>p)
        {
            dr=mid-1;
        }
        else
        {
            res=mid;
            dr=mid-1;
        }
    }
    fout<<res;
    return 0;
}