Cod sursa(job #3176068)

Utilizator VladNANegoita Vlad-Andrei VladNA Data 26 noiembrie 2023 18:06:51
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <bits/stdc++.h>
#pragma GCC optimize("Ofast,unroll-loops")
#pragma GCC target("sse,avx,fma,avx2,bmi,bmi2,lzcnt,popcnt")

using namespace std;
using ll = long long;

ll legendre(ll n) {
  ll cnt = 0;
  for (ll p = 5; p <= n; p *= 5)
    cnt += n / p;

  return cnt;
}

void solve() {
  ll p;
  cin >> p;

  ll l = 1, r = 1e10, mid, ans = -1;
  while (l <= r) {
    mid = (l + r) / 2;
    ll eval_mid = legendre(mid);
    if (eval_mid > p) {
      r = mid - 1;
    } else if (eval_mid < p) {
      l = mid + 1;
    } else {
      ans = mid;
      r = mid - 1;
    }
  }

  cout << ans << endl;
}

int main() {
  freopen("fact.in", "r", stdin);
  freopen("fact.out", "w", stdout);
  int t = 1;
  // cin >> t;
  while (t--)
    solve();

  return 0;
}