Cod sursa(job #2960239)

Utilizator ezluciPirtac Eduard ezluci Data 3 ianuarie 2023 20:14:35
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#ifdef EZ
   #include "./ez/ez.h"
#else
   #include <bits/stdc++.h>
#endif
#define mp make_pair
#define mt make_tuple
#define ll long long
#define pb push_back
#define fi first
#define se second
using namespace std;
const string FILE_NAME = "fact";
ifstream fin (FILE_NAME + ".in");
ofstream fout (FILE_NAME + ".out");

const int pMAX = 100e6;

// cate zerouri la sfarsit are x!
ll zeros(ll x)
{
   ll ans = 0;
   for (ll i = 5; i <= x; i *= 5)
      ans += x/i;
   
   return ans;
}

int main()
{
   int p;
   fin >> p;

   ll sol = -1, st = 1, dr = LLONG_MAX>>2;
   while (st <= dr)
   {
      ll mj = st+dr >> 1;
      ll z = zeros(mj);

      if (z >= p)
      {
         if (z == p)
            sol = mj;
         dr = mj-1;
      }
      else
         st = mj+1;
   }
   
   fout << sol;
}