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: import numpy as np
  
  N = int(input())
  A = np.array(list(map(int, input().split())))
  MOD = 10**9 + 7
  U = 10**6 + 10
  
  is_prime = np.zeros(U, np.bool)  # 素数列挙(エラトステネス)
  is_prime[2] = 1
  is_prime[3::2] = 1
  # print(is_prime)
  for p in range(3, U, 2):
      if p * p > U:
          break
      if is_prime[p]:
          is_prime[p * p :: p + p] = 0
  
  M = 10**3
  small_primes = np.where(is_prime[:M])[0].tolist()
  B = A.copy()
  lcm = 1
  for p in small_primes:
      e = 0
      while np.any(A % p == 0):
          e += 1
          A[A % p == 0] //= p
      lcm *= p**e
      lcm %= MOD
  
  # Mより大きい数は、ここに現れる
  for x in set(A.tolist()):
      print(x)
  
  ans = sum(pow(x, MOD - 2, MOD) for x in B.tolist()) % MOD
  ans *= lcm
  ans %= MOD
  print(ans)
  
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)."}]