Cod sursa(job #2841380)

Utilizator divadddDavid Curca divaddd Data 29 ianuarie 2022 17:38:36
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <iostream>
#include <fstream>
using namespace std;
long long p;

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

int nrDeZero(long long n){
    long long s = 0;
    long long p = 5;
    while(p <= n){
        s += n/p;
        p *= 5;
    }
    return s;
}

int cautare(long long x){
    long long st = 1;
    long long dr = 1000000002;
    int poz = 0;
    bool ok = false;
    while(st <= dr){
        long long mid = (st+dr)/2;
        long long val = nrDeZero(mid);
        if(val >= x){
            dr = mid-1;
            poz = mid;
            if(val == x){
                ok = true;
            }
        }else{
            st = mid+1;
        }
    }
    if(ok){
        return poz;
    }
    return -1;
}

int main()
{
    fin >> p;
    fout << cautare(p) << "\n";
    return 0;
}