Cod sursa(job #2860715)

Utilizator MafteiAlbertAlexandruMaftei Albert-Alexandru MafteiAlbertAlexandru Data 2 martie 2022 23:23:04
Problema Factorial Scor 70
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
uint64_t P;
uint64_t nr0(uint64_t nr)
{
    uint64_t r=0;
    for(uint64_t i=5;i<=nr;i*=5)
    {
        r+=nr/i;
    }
    return r;
}
int main()
{
    fin>>P;
    uint64_t st=0,dr=0xffffffff;
    uint64_t mij = st/2+dr/2 + ((st&1)+(dr&1))/2;
    uint64_t last_result=mij;
    while(st<dr)
    {
        mij=st/2+dr/2 + ((st&1)+(dr&1))/2;
        uint64_t r=nr0(mij);
        if(r<P)
        {
            st=mij+1;
        }else if(r>P)
        {
            dr=mij-1;
        }else {
            dr=mij-1;
            last_result=mij;
        }
    }
    if(nr0(last_result)==P)
    fout <<last_result;
    else fout << -1;
    return 0;
}