#include <bits/stdc++.h>
#pragma GCC optimize("Ofast")
#pragma GCC target("avx")
#define ll long long
using namespace std;
int n,cnt=0;
ll f[1000005],p[100005];
ll t[100005];
unordered_map <ll,ll> mp;
inline ll max(ll a,ll b)
{return a>b?a:b;}
int main (){
	int i,l;
	ll j;
	f[1]=1;
	for (i=1;i<=1000000;i++)
	{for (j=i+i;j<=1000000;j+=i)
	{f[j]=max(f[j],f[i]*(j/i)+1);}
	}
	ll x,ans=0;
	scanf ("%d",&n);
	for (i=1;i<=n;i++)
	{cnt=0;scanf ("%lld",&x);
	for (j=1;j*j<=x;j++)
	{if (x%j==0) 
	{p[++cnt]=j;
	if (j*j!=x) p[++cnt]=x/j;
	}
	}
	sort(p+1,p+cnt+1);
	for (j=1;j<=cnt;j++)
	{if (p[j]<=1000000) {t[j]=f[p[j]];continue;}
	if (mp.find(p[j])!=mp.end()) {t[j]=mp[p[j]];continue;}
	t[j]=p[j]+1;
	for (l=1;l<j;l++)
	{if (p[j]%p[l]==0)
	{t[j]=max(t[j],(p[j]/p[l])*t[l]+1);}
	}
	mp[p[j]]=t[j];
	}
	ans+=t[cnt];
	}
	printf ("%lld\n",ans);
	return 0;
}