import itertools


def get_prime_factors(num):
    factors=set()
    i=2
    while i*i<=num:  # 只需要检查到  sqrt(num)
        while num%i==0: # 整除
            factors.add(i)
            num=num//i  #  不断除以当前质数
        i=i+1
    # 关键步骤 处理剩余的质数    num>1 说明剩余的num 是一个质数 无法被2-sqrt(num) 之间的任何数整除
    if num>1:
        factors.add(num)
    return factors
def dfs(arr:list):
    result=[]
    # 定义行
    rows=len(arr)
    def dfs_helper(row,path):
        if rows==row:
            result.append(path.copy())
            return 
        # 遍历这行每个元素    
        for num in arr[row]:
            path.append(num)
            dfs_helper(row+1,path)
            path.pop()
    dfs_helper(0,[])
    return result

def   func():
    n =  int(input())
    a=list(map(int,input().split()))
    prime_factors_list=[]  #所有数的素数 因子
    for num in a:
        factors=get_prime_factors(num)
        prime_factors_list.append(factors)
    # 设置最小值
    min_sum =float('inf')
    # 使用dfs
    res=dfs(prime_factors_list)
    #print("pr",prime_factors_list)
    #print("res",res )
    #for combinations in itertools.product(*prime_factors_list):
    for  combinations in res:
        if len(set(combinations))==n:
            current_sum =sum(combinations)
            if min_sum>current_sum:
                min_sum=current_sum
    ret = min_sum if min_sum!=float('inf') else -1
    print(ret)

func()