Cod sursa(job #3344634)

Utilizator serbanbBrindescu Serban serbanb Data 4 martie 2026 11:58:06
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <fstream>

using namespace std;

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

long long int ans;

long long int nr0(long long int a)
{
    long long int exp = 5;
    long long int cnt = 0;
    while(true){
        cnt += a / exp;
        if(a / exp == 0){
            return cnt;
        }
        exp *= 5;
    }
}

int main()
{
    fin >> ans;
    if(ans == 0){
        fout << 1;
    }
    else{
        long long int l = 5, r = 1000000000;
        long long int m;
        while(l <= r){
            m = (l + r) / 2;
            if(nr0(m) == ans){
                r = m - 1;
                break;
            }
            else if(nr0(m) > ans){
                r = m - 1;
            }
            else{
                l = m + 1;
            }
        }
        if(nr0(m) == ans){
            fout << (m / 5) * 5;
        }
        else{
            fout << -1;
        }
    }
    return 0;
}