Cod sursa(job #2179806)

Utilizator TooHappyMarchitan Teodor TooHappy Data 20 martie 2018 14:22:35
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <bits/stdc++.h>
using namespace std;
    
ifstream in("fact.in");
ofstream out("fact.out");

long long countZeros(long long nr) {
    long long cnt = 0;

    for(long long i = 5; i <= nr; i *= 5) {
        cnt += (nr / i);
    }

    return cnt;
}
  
int main() {
    ios::sync_with_stdio(false); in.tie(0); out.tie(0);
  
    long long p; in >> p;

    long long lo = 1, hi = 5 * p;

    while(lo <= hi) {
        long long mid = (lo + hi) / 2;

        long long temp = countZeros(mid);

        if(temp < p) {
            lo = mid + 1;
        } else {
            hi = mid - 1;
        }
    }

    if(countZeros(lo) == p) {
        out << lo;
    } else {
        out << -1;
    }
     
    in.close(); out.close();
    
    return 0;
}