n=input()
s=list(map(int,input().split()))
suyinzilist=[]
path=[]
tmp=[]
def sushu(k): #判断是否为素数
for i in range(2,int(k*0.5)+1):
if k%i==0:
return False
return True
def suyinzi(m): #求数字的素因子
yzlist=[]
for i in range(2,m+1):
while m%i==0:
if i not in yzlist and sushu(i):
yzlist.append(i)
m=m//i
return yzlist
def sou(suyinzilist,tmp): #顺序搜索,搜索成功的结果添加到path列表中
if not suyinzilist:
path.append(tmp)
return True
else:
for i in suyinzilist[0]:
if i not in tmp:
sou(suyinzilist[1:],tmp+[i])
for i in s: #素因子列表suyinzilist
suyinzilist.append(suyinzi(i))
if len(path)==0:
print('-1')
exit()
minsum=sum(path[0])
for i in path:
minsum=min(minsum,sum(i))
print(minsum)
s=list(map(int,input().split()))
suyinzilist=[]
path=[]
tmp=[]
def sushu(k): #判断是否为素数
for i in range(2,int(k*0.5)+1):
if k%i==0:
return False
return True
def suyinzi(m): #求数字的素因子
yzlist=[]
for i in range(2,m+1):
while m%i==0:
if i not in yzlist and sushu(i):
yzlist.append(i)
m=m//i
return yzlist
def sou(suyinzilist,tmp): #顺序搜索,搜索成功的结果添加到path列表中
if not suyinzilist:
path.append(tmp)
return True
else:
for i in suyinzilist[0]:
if i not in tmp:
sou(suyinzilist[1:],tmp+[i])
for i in s: #素因子列表suyinzilist
suyinzilist.append(suyinzi(i))
sou(suyinzilist,tmp)
print('-1')
exit()
minsum=sum(path[0])
for i in path:
minsum=min(minsum,sum(i))
print(minsum)