Cod sursa(job #2797984)

Utilizator CelestinNegraru Celestin Celestin Data 10 noiembrie 2021 20:04:10
Problema Factorial Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <iostream>
#include <fstream>
#include <limits.h>
using namespace std;
ifstream f;
ofstream g;
unsigned long long INF=LLONG_MAX,p;
unsigned long long nrz(unsigned long long n)
{
    unsigned long long s=0,p=5;
    while(p<=n)
    {
        s+=n/p;
        p*=5;
    }
    return s;
}
unsigned long long BINARY()
{
    unsigned long long st=1;
    unsigned long long dr=INF;
    unsigned long long sol=0;
    while(st<=dr)
    {
        unsigned long long mid=(st+dr)>>1;
        unsigned long long nrzero=nrz(mid);
        if(nrzero==p)
        {
            sol=mid;
            dr=mid-1;
        }
        else{
            if(nrzero<p)
            {
                st=mid+1;
            }
            else{
                dr=mid-1;
            }
        }
    }
    return sol;
}
int main()
{
    f.open("fact.in");
    g.open("fact.out");
    f>>p;
    g<<BINARY();
    return 0;
}