Language: C++

#include <bits/stdc++.h>
#define rep(i,n)for(long long i=0;i<(n);i++)
using namespace std;
typedef unsigned long long ull;
typedef long long ll;
const ll INF=1e18;
const ll MOD=1e9+7;
const double pi=acos(-1);
ll modpow(ll a, ll n){
  if(n==0) return 1;
  if(n%2==0){
    ll t=modpow(a,n/2);
    return t*t%MOD;
  }
  return a*modpow(a,n-1)%MOD;
}
ll modinv(ll a){
  return modpow(a,MOD-2);
}
vector<pair<ll,ll>>prime_factorize(ll n){
  vector<pair<ll,ll>>res;
  for(ll p=2;p*p<=n;p++){
    if(n%p!=0)continue;
    ll num=0;
    while(n%p==0){
      num++;
      n/=p;
    }
    res.push_back(make_pair(p,num));
  }
  if(n!=1)res.push_back(make_pair(n,1));
  return res;
}
int main(){
  int n;
  cin >> n;
  vector<ll>a(n);
  map<int,int>mp;
  rep(i,n){
    cin >> a[i];
    auto pf=prime_factorize(a[i]);
    for(auto p:pf){
      mp[p.first]=max(mp[p.first],p.second);
    }
  }
  ll lcm=1;
  for(auto p:mp){
    rep(j,p.second){
      lcm*=p.first;
      lcm%=MOD;
    }
  }
  ll ans=0;
  rep(i,n){
    ans+=lcm*modinv(a[i]);
    ans%=MOD;
  }
  cout << ans%MOD << endl;
}

Compiler output:
a.cc: In function 'int main()':
a.cc:43:22: error: no matching function for call to 'max(std::map<int, int>::mapped_type&, long long int&)'
   43 |       mp[p.first]=max(mp[p.first],p.second);
      |                   ~~~^~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/14/algorithm:60,
                 from /usr/include/x86_64-linux-gnu/c++/14/bits/stdc++.h:51,
                 from a.cc:1:
/usr/include/c++/14/bits/stl_algobase.h:257:5: note: candidate: 'template<class _Tp> constexpr const _Tp& std::max(const _Tp&, const _Tp&)'
  257 |     max(const _Tp& __a, const _Tp& __b)
      |     ^~~
/usr/include/c++/14/bits/stl_algobase.h:257:5: note:   template argument deduction/substitution failed:
a.cc:43:22: note:   deduced conflicting types for parameter 'const _Tp' ('int' and 'long long int')
   43 |       mp[p.first]=max(mp[p.first],p.second);
      |                   ~~~^~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/14/bits/stl_algobase.h:303:5: note: candidate: 'template<class _Tp, class _Compare> constexpr const _Tp& std::max(const _Tp&, const _Tp&, _Compare)'
  303 |     max(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |     ^~~
/usr/include/c++/14/bits/stl_algobase.h:303:5: note:   candidate expects 3 arguments, 2 provided
In file included from /usr/include/c++/14/algorithm:61:
/usr/include/c++/14/bits/stl_algo.h:5706:5: note: candidate: 'template<class _Tp> constexpr _Tp std::max(initializer_list<_Tp>)'
 5706 |     max(initializer_list<_Tp> __l)
      |     ^~~
/usr/include/c++/14/bits/stl_algo.h:5706:5: note:   candidate expects 1 argument, 2 provided
/usr/include/c++/14/bits/stl_algo.h:5716:5: note: candidate: 'template<class _Tp, class _Compare> constexpr _Tp std::max(initializer_list<_Tp>, _Compare)'
 5716 |     max(initializer_list<_Tp> __l, _Compare __comp)
      |     ^~~
/usr/include/c++/14/bits/stl_algo.h:5716:5: note:   template argument deduction/substitution failed:
a.cc:43:22: note:   mismatched types 'std::initializer_list<_Tp>' and 'int'
   43 |       mp[p.first]=max(mp[p.first],p.second);
      |                   ~~~^~~~~~~~~~~~~~~~~~~~~~