Cod sursa(job #2928969)

Utilizator raresgherasaRares Gherasa raresgherasa Data 24 octombrie 2022 12:30:48
Problema Factorial Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.52 kb
#include <bits/stdc++.h>
#define ll long long
using namespace std;

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

bool check (ll mid, ll x){
  ll ans = 0;
  while (x > 0){
    ans += x / 5;
    x = x / 5;
  }
  return (ans >= mid);
}

int main(){
  ll x; fin >> x;
  ll l = 0, r = 1e18, ans;
  while (l <= r){
    ll mid = l + (r - l) / 2;
    if (check(x, mid)){
      ans = mid;
      r = mid - 1;
    }
    else{
      l = mid + 1;
    }
  }
  fout << (check(ans, x) == x ? ans : -1);
}