#include using namespace std; vectordp(1000009); bool isPrime(long long n) { if(n==2) return true; if(n%2==0) return false; long long m=sqrt(n),i; for(i=3;i<=m;i=i+2) { if(n%i==0) return false; } return true; } long long val(int a) { // Return the length of the longest possible sequence of moves. long long m=sqrt(a),i,ans=0; if(a==1) { dp[a]=1; } else if(isPrime(a)==true) { dp[a]=a+1; } else { for(i=2;i<=m;i++) { if(a%i==0) { ans=max(ans,(a/i)*val(i)); ans=max(ans,i*val(a/i)); } } dp[a]=ans+1; } return dp[a]; } int main() { long long n,sum=0,a=0,i; cin >> n; for(i = 0;i < n;i++) { cin >>a; sum+=val(a); } cout << sum << endl; return 0; }