import sys import math def main(): input = sys.stdin.read().split() n = int(input[0]) A = list(map(int, input[1:n+1])) A.sort() if n == 0: print(0) return min_val = A[0] max_A = 10**5 # 根据题目中的A_i的最大可能值设置 # 预处理每个数的因数列表,按降序排列 factors = [[] for _ in range(max_A + 1)] for d in range(1, max_A + 1): for x in range(2 * d, max_A + 1, d): factors[x].append(d) # 对每个数的因数列表按降序排序 for x in range(1, max_A + 1): factors[x].sort(reverse=True) # 使用存在数组来记录已经存在的数 exist = [False] * (max_A + 1) exist[min_val] = True sum_total = 0 for i in range(1, n): x = A[i] found = False # 遍历x的因数列表(降序) for d in factors[x]: if d > x: continue # 确保因数d确实小于x,理论上不会有这种情况 if exist[d]: sum_total += x found = True break if not found: # 计算LCM(min_val, x) g = math.gcd(min_val, x) lcm = min_val * x // g sum_total += lcm # 标记当前数存在 exist[x] = True print(sum_total) if __name__ == '__main__': main()