Cod sursa(job #3169899)

Utilizator RobertAcAcatrinei Robert-Marian RobertAc Data 16 noiembrie 2023 11:31:40
Problema Factorial Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <bits/stdc++.h>
#ifdef LOCAL
#define in cin
#define out cout
#endif
#define int int64_t
using namespace std;

#ifndef LOCAL
ifstream in("fact.in");
ofstream out("fact.out");
#endif

bool countt(int maxx,vector<pair<int,int>> bases,int q)
{
    for(auto i:bases)
    {
        int cnt=0;
        int base1=i.first;
        while(base1<=maxx)
        {
            cnt+=maxx/base1;
            base1*=i.first;
        }
        if(cnt<i.second*q)return 0;
    }
    return 1;
}


signed main()
{
    int p=10,q;in>>q;
    int st = 1, dr = __LONG_LONG_MAX__/2;
    vector<pair<int,int>> bases;
    bases.push_back({2,1});
    bases.push_back({5,1});
    while (st<dr)
    {
        int mid=(st+dr)/2;
        if(countt(mid,bases,q))
        {
            dr=mid;
        }
        else
        {
            st=mid+1;
        }
    }
    out<<st;
}