Cod sursa(job #2957244)

Utilizator SG2021StancuGeorge SG2021 Data 22 decembrie 2022 03:33:32
Problema Factorial Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <bits/stdc++.h>
#include <iostream>
#include <fstream>

using namespace std;
typedef long long int ll;
ifstream f("factorial.in");
ofstream g("factorial.out");
ll ans = -1;
ll countzeros(ll& num){
    ll div = 5;
    ll cnt = 0;
    while(num / div > 0){
        cnt += num / div;
        div*=5;
    }
    return cnt;
}
int main(){
    ll val;
    f >> val;
    ll begin = 0;
    ll end = 10e9;
    while(begin <= end){
        ll mid = begin + (end - begin) / 2;
        ll zeros = countzeros(mid);
        if(zeros == val){
            ans = mid;
            // daca as pune break mi ar pune prima valoare pe care o gaseste care indeplineste conditia

            end = mid - 1; // nu se termina programul chiar daca gaseste prima valoare care respecta conditia
            // (noua ne trebuie cel mai mic posibil)

        }else if (zeros > val){
            end = mid - 1;
        }else{
            begin = mid + 1;
        }

    }



    g << ans;

}