/*
https://w...content-available-to-author-only...k.com/contests/uits251201g/challenges/the-grand-equalizer/problem
*/
#include <bits/stdc++.h>
using namespace std;
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
#define int long long
#define ll long long
#define lld long double
#define pb push_back
#define endl "\n"
#define all(v) v.begin(), v.end()
#define rall(v) v.rbegin(), v.rend()
#define istg() ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
template<class T> using ordered_set = tree<T, null_type,less<T>, rb_tree_tag,tree_order_statistics_node_update>;
const ll M = 1e9 + 7;
const ll N = 1e6 + 1;
inline void normal(ll &a);
inline ll modMul(ll a, ll b);
inline ll modAdd(ll a, ll b);
inline ll modSub(ll a, ll b);
inline ll modPow(ll b, ll p);
inline ll modInverse(ll a);
inline ll modDiv(ll a, ll b);
vector<bool>mark(N + 1);
vector<ll>prime;
void seive();
vector<ll>spf(N);
void precal() {
for (int i = 2; i < N; i++) {
for (int j = i; j < N; j += i) {
if (spf[j] == 0) {
spf[j] = i;
}
}
}
// for (int i = 1; i < 11; i++) {
// cout << spf[i] << endl;
// }
}
void solve(ll tc)
{
precal();
int n; cin >> n;
vector<ll> v(n);
for (auto& i : v) cin >> i;
vector<ll> lf(N, 1);
for (auto x : v) {
while (x > 1) {
int p = spf[x], val = 1;
while (x % p == 0) {
val *= p;
x /= p;
}
lf[p] = max(lf[p], 1LL * val);
}
}
// for (int i = 1; i < 11; i++) {
// cout << lf[i] << endl;
// }
ll lcm = 1;
for (int i = 2; i < N; i++) {
lcm = modMul(lcm, lf[i]);
}
// cout << lcm << endl;
int ans = 0;
for (auto i : v) {
ans += modDiv(lcm, i);
normal(ans);
}
cout << ans << endl;
}
int32_t main()
{
istg();
// freopen("input.txt", "r", stdin);
// freopen("output.txt", "w", stdout);
// seive();
ll t = 1;
// cin >> t;
for (ll i = 1; i <= t; i++) solve(i);
}
void seive(){
mark[0]=true;
mark[1]=true;
for(ll i=4; i<=N; i+=2){
mark[i]=true;
}
for(ll i=3; i*i<=N; i+=2){
if(mark[i]==false){
for(ll j=i*i; j<=N; j+=2*i){
mark[j]=true;
}
}
}
prime.push_back(2);
for(ll i=3; i<=N; i+=2){
if(mark[i]==false){
prime.push_back(i);
}
}
}
inline void normal(ll &a) {
a = (a % M + M) % M;
}
inline ll modMul(ll a, ll b) {
normal(a);
normal(b);
return (a * b) % M;
}
inline ll modAdd(ll a, ll b) {
normal(a);
normal(b);
return (a + b) % M;
}
inline ll modSub(ll a, ll b) {
normal(a);
normal(b);
a -= b;
normal(a);
return a;
}
inline ll modPow(ll b, ll p) {
ll r = 1;
while (p) {
if (p & 1) r = modMul(r, b);
b = modMul(b, b);
p >>= 1;
}
return r;
}
inline ll modInverse(ll a) {
return modPow(a, M - 2);
}
inline ll modDiv(ll a, ll b) {
return modMul(a, modInverse(b));
}
LyoKCmh0dHBzOi8vdy4uLmNvbnRlbnQtYXZhaWxhYmxlLXRvLWF1dGhvci1vbmx5Li4uay5jb20vY29udGVzdHMvdWl0czI1MTIwMWcvY2hhbGxlbmdlcy90aGUtZ3JhbmQtZXF1YWxpemVyL3Byb2JsZW0KCiovCgojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2luY2x1ZGUgPGV4dC9wYl9kcy9hc3NvY19jb250YWluZXIuaHBwPgojaW5jbHVkZSA8ZXh0L3BiX2RzL3RyZWVfcG9saWN5LmhwcD4KdXNpbmcgbmFtZXNwYWNlIF9fZ251X3BiZHM7CiNkZWZpbmUgaW50IGxvbmcgbG9uZyAKI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSBsbGQgbG9uZyBkb3VibGUKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBlbmRsICJcbiIKI2RlZmluZSBhbGwodikgdi5iZWdpbigpLCB2LmVuZCgpCiNkZWZpbmUgcmFsbCh2KSB2LnJiZWdpbigpLCB2LnJlbmQoKQojZGVmaW5lIGlzdGcoKSBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApO2Npbi50aWUoMCk7Y291dC50aWUoMCk7CnRlbXBsYXRlPGNsYXNzIFQ+IHVzaW5nIG9yZGVyZWRfc2V0ID0gdHJlZTxULCBudWxsX3R5cGUsbGVzczxUPiwgcmJfdHJlZV90YWcsdHJlZV9vcmRlcl9zdGF0aXN0aWNzX25vZGVfdXBkYXRlPjsKY29uc3QgbGwgTSA9IDFlOSArIDc7CmNvbnN0IGxsIE4gPSAxZTYgKyAxOwppbmxpbmUgdm9pZCBub3JtYWwobGwgJmEpOwppbmxpbmUgbGwgbW9kTXVsKGxsIGEsIGxsIGIpOwppbmxpbmUgbGwgbW9kQWRkKGxsIGEsIGxsIGIpOwppbmxpbmUgbGwgbW9kU3ViKGxsIGEsIGxsIGIpOwppbmxpbmUgbGwgbW9kUG93KGxsIGIsIGxsIHApOwppbmxpbmUgbGwgbW9kSW52ZXJzZShsbCBhKTsKaW5saW5lIGxsIG1vZERpdihsbCBhLCBsbCBiKTsKdmVjdG9yPGJvb2w+bWFyayhOICsgMSk7CnZlY3RvcjxsbD5wcmltZTsKdm9pZCBzZWl2ZSgpOwoKdmVjdG9yPGxsPnNwZihOKTsKdm9pZCBwcmVjYWwoKSB7CiAgICBmb3IgKGludCBpID0gMjsgaSA8IE47IGkrKykgewogICAgICAgIGZvciAoaW50IGogPSBpOyBqIDwgTjsgaiArPSBpKSB7CiAgICAgICAgICAgIGlmIChzcGZbal0gPT0gMCkgewogICAgICAgICAgICAgICAgc3BmW2pdID0gaTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIC8vIGZvciAoaW50IGkgPSAxOyBpIDwgMTE7IGkrKykgewogICAgLy8gICAgIGNvdXQgPDwgc3BmW2ldIDw8IGVuZGw7CiAgICAvLyB9Cn0KCnZvaWQgc29sdmUobGwgdGMpCnsKICAgIHByZWNhbCgpOwogICAgaW50IG47IGNpbiA+PiBuOwogICAgdmVjdG9yPGxsPiB2KG4pOwogICAgZm9yIChhdXRvJiBpIDogdikgY2luID4+IGk7CgogICAgdmVjdG9yPGxsPiBsZihOLCAxKTsKICAgIGZvciAoYXV0byB4IDogdikgewogICAgICAgIHdoaWxlICh4ID4gMSkgewogICAgICAgICAgICBpbnQgcCA9IHNwZlt4XSwgdmFsID0gMTsKICAgICAgICAgICAgd2hpbGUgKHggJSBwID09IDApIHsKICAgICAgICAgICAgICAgIHZhbCAqPSBwOwogICAgICAgICAgICAgICAgeCAvPSBwOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGxmW3BdID0gbWF4KGxmW3BdLCAxTEwgKiB2YWwpOwogICAgICAgIH0KICAgIH0KICAgIC8vIGZvciAoaW50IGkgPSAxOyBpIDwgMTE7IGkrKykgewogICAgLy8gICAgIGNvdXQgPDwgbGZbaV0gPDwgZW5kbDsKICAgIC8vIH0KICAgIGxsIGxjbSA9IDE7CiAgICBmb3IgKGludCBpID0gMjsgaSA8IE47IGkrKykgewogICAgICAgIGxjbSA9IG1vZE11bChsY20sIGxmW2ldKTsKICAgIH0KICAgIC8vIGNvdXQgPDwgbGNtIDw8IGVuZGw7CgogICAgaW50IGFucyA9IDA7CiAgICBmb3IgKGF1dG8gaSA6IHYpIHsKICAgICAgICBhbnMgKz0gbW9kRGl2KGxjbSwgaSk7CiAgICAgICAgbm9ybWFsKGFucyk7CiAgICB9CiAgICBjb3V0IDw8IGFucyA8PCBlbmRsOwoKCn0KCmludDMyX3QgbWFpbigpCnsKICAgIGlzdGcoKTsKLy8gICAgZnJlb3BlbigiaW5wdXQudHh0IiwgInIiLCBzdGRpbik7Ci8vICAgIGZyZW9wZW4oIm91dHB1dC50eHQiLCAidyIsIHN0ZG91dCk7Ci8vICAgIHNlaXZlKCk7CiAgICBsbCB0ID0gMTsKICAgIC8vIGNpbiA+PiB0OwogICAgZm9yIChsbCBpID0gMTsgaSA8PSB0OyBpKyspIHNvbHZlKGkpOwoKfQoKdm9pZCBzZWl2ZSgpewogICAgbWFya1swXT10cnVlOwogICAgbWFya1sxXT10cnVlOwogICAgZm9yKGxsIGk9NDsgaTw9TjsgaSs9Mil7CiAgICAgICAgbWFya1tpXT10cnVlOwogICAgfQogICAgZm9yKGxsIGk9MzsgaSppPD1OOyBpKz0yKXsKICAgICAgICBpZihtYXJrW2ldPT1mYWxzZSl7CiAgICAgICAgICAgIGZvcihsbCBqPWkqaTsgajw9Tjsgais9MippKXsKICAgICAgICAgICAgICAgIG1hcmtbal09dHJ1ZTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIHByaW1lLnB1c2hfYmFjaygyKTsKICAgIGZvcihsbCBpPTM7IGk8PU47IGkrPTIpewogICAgICAgIGlmKG1hcmtbaV09PWZhbHNlKXsKICAgICAgICAgICAgcHJpbWUucHVzaF9iYWNrKGkpOwogICAgICAgIH0KICAgIH0KCn0KCmlubGluZSB2b2lkIG5vcm1hbChsbCAmYSkgewogICAgYSA9IChhICUgTSArIE0pICUgTTsKfQppbmxpbmUgbGwgbW9kTXVsKGxsIGEsIGxsIGIpIHsKICAgIG5vcm1hbChhKTsgCiAgICBub3JtYWwoYik7CiAgICByZXR1cm4gKGEgKiBiKSAlIE07Cn0KaW5saW5lIGxsIG1vZEFkZChsbCBhLCBsbCBiKSB7CiAgICBub3JtYWwoYSk7IAogICAgbm9ybWFsKGIpOwogICAgcmV0dXJuIChhICsgYikgJSBNOwp9CmlubGluZSBsbCBtb2RTdWIobGwgYSwgbGwgYikgewogICAgbm9ybWFsKGEpOyAKICAgIG5vcm1hbChiKTsKICAgIGEgLT0gYjsKICAgIG5vcm1hbChhKTsKICAgIHJldHVybiBhOwp9CmlubGluZSBsbCBtb2RQb3cobGwgYiwgbGwgcCkgewogICAgbGwgciA9IDE7CiAgICB3aGlsZSAocCkgewogICAgICAgIGlmIChwICYgMSkgciA9IG1vZE11bChyLCBiKTsKICAgICAgICBiID0gbW9kTXVsKGIsIGIpOwogICAgICAgIHAgPj49IDE7CiAgICB9CiAgICByZXR1cm4gcjsKfQppbmxpbmUgbGwgbW9kSW52ZXJzZShsbCBhKSB7CiAgICByZXR1cm4gbW9kUG93KGEsIE0gLSAyKTsKfQppbmxpbmUgbGwgbW9kRGl2KGxsIGEsIGxsIGIpIHsKICAgIHJldHVybiBtb2RNdWwoYSwgbW9kSW52ZXJzZShiKSk7Cn0K