Buggy python submission (verdict: Time Limit Exceeded):
N = int(input())
A = list(map(int, input().split()))

MOD = 10 ** 9 + 7


def gcd(a, b):
    while a and b:
        a, b = b, a % b
    return a if a > 0 else b


def lcm(a, b):
    return a // gcd(a, b) * b


_lcm = A[0]
for i in range(1, N):
    _lcm = lcm(_lcm, A[i])

res = 0
for i, a in enumerate(A):
    res = (res + (_lcm * pow(A[i], MOD - 2, MOD))) % MOD

print(res)


Fixed submission:
from fractions import gcd
import sys

input = sys.stdin.readline

N = int(input())
A = list(map(int, input().split()))

MOD = 10 ** 9 + 7


def lcm(a, b):
    return a * b // gcd(a, b)


l = A[0]
for a in A:
    l = lcm(l, a)

res = 0
for a in A:
    res = (res + (l * pow(a, MOD - 2, MOD)) % MOD) % MOD
    # res = (res + l // a) % MOD

print(res)

Buggy python submission (verdict: Time Limit Exceeded):
N = int(input())
A = list(map(int, input().split()))

MOD = 10 ** 9 + 7


def gcd(a, b):
    while a and b:
        a, b = b, a % b
    return a if a > 0 else b


def lcm(a, b):
    return a * b // gcd(a, b)


_lcm = A[0]
for i in range(1, N):
    _lcm = lcm(_lcm, A[i])

res = 0
for i, a in enumerate(A):
    res = (res + (_lcm * pow(A[i], MOD - 2, MOD))) % MOD

print(res)


Fixed submission:
from fractions import gcd
import sys

input = sys.stdin.readline

N = int(input())
A = list(map(int, input().split()))

MOD = 10 ** 9 + 7


def lcm(a, b):
    return a * b // gcd(a, b)


l = A[0]
for a in A:
    l = lcm(l, a)

res = 0
for a in A:
    res = (res + (l * pow(a, MOD - 2, MOD)) % MOD) % MOD
    # res = (res + l // a) % MOD

print(res)

Buggy python submission (verdict: Time Limit Exceeded):
from collections import defaultdict

N = int(input())
A = list(map(int, input().split()))

MOD = 10 ** 9 + 7

primes = defaultdict(int)

for a in A:
    x = a
    p = 2
    while p * p <= x:
        cnt = 0
        while x % p == 0:
            x //= p
            cnt += 1
        if cnt > 0:
            primes[p] = max(primes[p], cnt)
        p += 1
    if x > 1:
        primes[x] = max(primes[x], 1)

lcm = 1
for p in primes:
    lcm = (lcm * pow(p, primes[p], MOD)) % MOD

res = 0
for a in A:
    res = (res + (lcm * pow(a, MOD - 2, MOD) % MOD)) % MOD

print(res)


Fixed submission:
from fractions import gcd
import sys

input = sys.stdin.readline

N = int(input())
A = list(map(int, input().split()))

MOD = 10 ** 9 + 7


def lcm(a, b):
    return a * b // gcd(a, b)


l = A[0]
for a in A:
    l = lcm(l, a)

res = 0
for a in A:
    res = (res + (l * pow(a, MOD - 2, MOD)) % MOD) % MOD
    # res = (res + l // a) % MOD

print(res)

Buggy python submission (verdict: Time Limit Exceeded):
from collections import defaultdict
import math

N = int(input())
A = list(map(int, input().split()))

MOD = 10 ** 9 + 7

primes = defaultdict(int)

for a in A:
    x = a
    p = 2
    for p in range(2, int(math.sqrt(a)) + 1):
        cnt = 0
        while x % p == 0:
            x //= p
            cnt += 1
        primes[p] = max(primes[p], cnt)
    if x > 1:
        primes[x] = max(primes[x], 1)

l = 1
for p in primes:
    l = (l * pow(p, primes[p], MOD)) % MOD

res = 0
for a in A:
    res = (res + (l * pow(a, MOD - 2, MOD) % MOD)) % MOD

print(res)


Fixed submission:
from fractions import gcd
import sys

input = sys.stdin.readline

N = int(input())
A = list(map(int, input().split()))

MOD = 10 ** 9 + 7


def lcm(a, b):
    return a * b // gcd(a, b)


l = A[0]
for a in A:
    l = lcm(l, a)

res = 0
for a in A:
    res = (res + (l * pow(a, MOD - 2, MOD)) % MOD) % MOD
    # res = (res + l // a) % MOD

print(res)

Buggy python submission (verdict: Runtime Error):
from collections import defaultdict
import math

N = int(input())
A = list(map(int, input().split()))

MOD = 10 ** 9 + 7

primes = defaultdict(int)

for a in A:
    x = a
    p = 2
    for p in range(2, int(math.sqrt(a)) + 1):
        cnt = 0
        while x % p == 0:
            x //= p
            cnt += 1
        primes[p] = max(primes[p], cnt)
    if x > 1:
        primes[x] = max(primes[x], 1)

l = 1
for p in primes:
    l = (l * pow(p, primes[p], MOD)) % MOD

res = 0
for a in A:
    res = (res + (l * pow(a, MOD - 2, MOD) % MOD) % MOD

print(res)


Fixed submission:
from fractions import gcd
import sys

input = sys.stdin.readline

N = int(input())
A = list(map(int, input().split()))

MOD = 10 ** 9 + 7


def lcm(a, b):
    return a * b // gcd(a, b)


l = A[0]
for a in A:
    l = lcm(l, a)

res = 0
for a in A:
    res = (res + (l * pow(a, MOD - 2, MOD)) % MOD) % MOD
    # res = (res + l // a) % MOD

print(res)

Buggy python submission (verdict: Time Limit Exceeded):
from collections import defaultdict
import math

N = int(input())
A = list(map(int, input().split()))

MOD = 10 ** 9 + 7

primes = defaultdict(int)

for a in A:
    x = a
    p = 2
    for p in range(2, int(math.sqrt(a)) + 1):
        cnt = 0
        while x % p == 0:
            x //= p
            cnt += 1
        primes[p] = max(primes[p], cnt)
    if x > 1:
        primes[x] = max(primes[x], 1)

l = 1
for p in primes:
    l = (l * pow(p, primes[p], MOD)) % MOD

res = 0
for a in A:
    res = (res + l * pow(a, MOD - 2, MOD)) % MOD

print(res)


Fixed submission:
from fractions import gcd
import sys

input = sys.stdin.readline

N = int(input())
A = list(map(int, input().split()))

MOD = 10 ** 9 + 7


def lcm(a, b):
    return a * b // gcd(a, b)


l = A[0]
for a in A:
    l = lcm(l, a)

res = 0
for a in A:
    res = (res + (l * pow(a, MOD - 2, MOD)) % MOD) % MOD
    # res = (res + l // a) % MOD

print(res)

Buggy python submission (verdict: Time Limit Exceeded):
from fractions import gcd
import sys

input = sys.stdin.readline

N = int(input())
A = list(map(int, input().split()))

MOD = 10 ** 9 + 7


def lcm(a, b):
    return a * b // gcd(a, b)


l = A[0]
for a in A:
    l = lcm(l, a)

res = 0
for a in A:
    res = (res + l // a) % MOD

print(res)


Fixed submission:
from fractions import gcd
import sys

input = sys.stdin.readline

N = int(input())
A = list(map(int, input().split()))

MOD = 10 ** 9 + 7


def lcm(a, b):
    return a * b // gcd(a, b)


l = A[0]
for a in A:
    l = lcm(l, a)

res = 0
for a in A:
    res = (res + (l * pow(a, MOD - 2, MOD)) % MOD) % MOD
    # res = (res + l // a) % MOD

print(res)

Buggy python submission (verdict: Time Limit Exceeded):
from fractions import gcd
import sys

input = sys.stdin.readline

N = int(input())
A = list(map(int, input().split()))

MOD = 10 ** 9 + 7


def lcm(a, b):
    return a * b // gcd(a, b)


l = A[0]
for i in range(1, N):
    l = lcm(l, A[i])

res = 0
for a in A:
    res = (res + l // a) % MOD

print(res)


Fixed submission:
from fractions import gcd
import sys

input = sys.stdin.readline

N = int(input())
A = list(map(int, input().split()))

MOD = 10 ** 9 + 7


def lcm(a, b):
    return a * b // gcd(a, b)


l = A[0]
for a in A:
    l = lcm(l, a)

res = 0
for a in A:
    res = (res + (l * pow(a, MOD - 2, MOD)) % MOD) % MOD
    # res = (res + l // a) % MOD

print(res)

Buggy python submission (verdict: Time Limit Exceeded):
N = int(input())
A = list(map(int, input().split()))

MOD = 10 ** 9 + 7


def gcd(a, b):
    while a and b:
        a, b = b, a % b
    return a if a > 0 else b


def lcm(a, b):
    return a * b // gcd(a, b)


l = A[0]
for i in range(1, N):
    l = lcm(l, A[i])

res = 0
for i, a in enumerate(A):
    res = (res + l // A[i]) % MOD

print(res)


Fixed submission:
from fractions import gcd
import sys

input = sys.stdin.readline

N = int(input())
A = list(map(int, input().split()))

MOD = 10 ** 9 + 7


def lcm(a, b):
    return a * b // gcd(a, b)


l = A[0]
for a in A:
    l = lcm(l, a)

res = 0
for a in A:
    res = (res + (l * pow(a, MOD - 2, MOD)) % MOD) % MOD
    # res = (res + l // a) % MOD

print(res)

Buggy python submission (verdict: Time Limit Exceeded):
N = int(input())
A = list(map(int, input().split()))

MOD = 10 ** 9 + 7


def gcd(a, b):
    while a and b:
        a, b = b, a % b
    return a if a > 0 else b


def lcm(a, b):
    return a * b // gcd(a, b)


l = A[0]
for i in range(1, N):
    l = lcm(l, A[i])

res = 0
for i, a in enumerate(A):
    res = (res + l // A[i]) % MOD

print(res)


Fixed submission:
from fractions import gcd
import sys

input = sys.stdin.readline

N = int(input())
A = list(map(int, input().split()))

MOD = 10 ** 9 + 7


def lcm(a, b):
    return a * b // gcd(a, b)


l = A[0]
for a in A:
    l = lcm(l, a)

res = 0
for a in A:
    res = (res + (l * pow(a, MOD - 2, MOD)) % MOD) % MOD
    # res = (res + l // a) % MOD

print(res)