Cod sursa(job #2689453)

Utilizator Darius_CDarius Chitu Darius_C Data 20 decembrie 2020 21:37:57
Problema Factorial Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <iostream>
#include <fstream>
std::ifstream fin("fact.in");
std::ofstream fout("fact.out");
using namespace std;

unsigned long long factorial(unsigned long long x)
{
    unsigned long long cnt=0;
    for(unsigned long long i=5;i<=x;i*=5)
        cnt += x/i;
    return cnt;
}

int main()
{
    unsigned long long N;
    fin >> N;
    if(N!=0)
    {
        unsigned long long m=0, st=1, dr=N*5, poz=-1;
        while(st <= dr)
        {
            m = (st+dr)/2;
            if(factorial(m)> N)
                dr = m-1;
            if(factorial(m)< N)
                st=m+1;
            else {
                poz = m;
                dr = m-1;
            }
        }
        fout << poz;
    }
    else
        fout << 1;
    return 0;
}