#include using namespace std; long long dp[1000005]; int prime[1000005]; long long hige[1000005]; vectorv; void pre() { int i,j; prime[0]=prime[1]=1; for(i=2;i<=1000000;i++) { if(!prime[i]) { v.push_back(i); hige[i]=i; for(j=2*i;j<=1000000;j+=i) { prime[j]=1; hige[j]=i; } } } dp[1]=1; for(i=2;i<=1000000;i++) { dp[i]=1+dp[i/hige[i]]*hige[i]; } } long long func(long long val) { if(val<=1000000) return dp[val]; long long int maxi=-1; long long ind; long long xxx=val; for (int i=0;i=1&&v[i]>=maxi) { maxi=v[i]; } } if(val>1) { if(val>maxi) maxi=val; } return (1+maxi*func(xxx/maxi)); } int main() { pre(); int n; scanf("%d",&n); long long answ=0; int i,j; for(i=1;i<=n;i++) { long long val; scanf("%lld",&val); if(val<=1000000) answ+=dp[val]; else { answ+=func(val); } } printf("%lld\n",answ); }