output_description: Print the minimum possible value of B_1 + ... + B_N for B_1,...,B_N that
  satisfy the condition, modulo (10^9 +7).
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N
      A_1 ... A_N
attempt: N = int(input())
  A = list(map(int, input().split()))
  
  
  def f(x):
      if x == 1:
          return dict()
      y = x
      r = dict()
      for i in range(2, int(x**0.5) + 1):
          if y % i == 0:
              r[i] = 0
              while y % i == 0:
                  r[i] += 1
                  y = y // i
          if y == 1:
              break
      if y != 1:
          r[y] = 1
      return r
  
  
  B = [f(A[i]) for i in range(N)]
  
  
  def g(X):
      if len(X) == 1:
          return X[0]
      a, b = g(X[: len(X) // 2]), g(X[len(X) // 2 :])
      c = list(set(a.keys()) | set(b.keys()))
      for i in range(len(c)):
          a[c[i]] = max(a.get(c[i], 0), b.get(c[i], 0))
      return a
  
  
  G = g(B)
  X = 1
  mod = 10**9 + 7
  P = 0
  Y = list(G.keys())
  for i in range(len(Y)):
      X = X * pow(Y[i], G[Y[i]], mod) % mod
  for i in range(N):
      P = (P + X * pow(A[i], mod - 2, mod)) % mod
  print(P)
  
problem_description: Statement
  
  Given are N positive integers A_1,...,A_N.
  
  Consider positive integers B_1, ..., B_N that satisfy the following condition.
  
  Condition: For any i, j such that 1 \leq i < j \leq N, A_i B_i = A_j B_j
  holds.
  
  Find the minimum possible value of B_1 + ... + B_N for such B_1,...,B_N.
  
  Since the answer can be enormous, print the sum modulo (10^9 +7).
samples: [{"input": "3\n    2 3 4", "output": "13\n    \n\nLet B_1=6, B_2=4, and B_3=3, and the condition will be satisfied.\n\n* * *"}, {"input": "5\n    12 12 12 12 12", "output": "5\n    \n\nWe can let all B_i be 1.\n\n* * *"}, {"input": "3\n    1000000 999999 999998", "output": "996989508\n    \n\nPrint the sum modulo (10^9+7)."}]