#include using namespace std; int dp[1000005]; bool isprime[1000005]; void sieve() { isprime[0]=1; isprime[0]=1; for(int i=2;i<=1000;i++) { if(!isprime[i]) for(int j=i*i;j<1000002;j+=i) isprime[j]=1; } } void precompute(long long int kk) { dp[0]=0; dp[1]=1; for(int i=2;i<=kk;i++) { if(!isprime[i]) dp[i]=1+i; else { double sq=sqrt(i); long ind=-1,val=-1; for(int j=2;j<=sq;j++) { if(i%j==0) { int d1,d2; d1=i/j; d2=i/(i/j); if(d1*dp[j]>val) val=d1*dp[j];; if(d2*dp[i/j]>val) val=d2*dp[i/j]; } } dp[i]=1+val; } } } long long int arr[102]; int main() { int n; cin>>n; sieve(); long long int ans=0,mx=1; for(int i=0;i>arr[i],mx=max(mx,arr[i]); precompute(mx); long long int v; for(int i=0;i