#include #define endl '\n' using namespace std; map mp; long long int solve(long long int num) { if(num==1) { mp[1]=1; return 1; } int ans=0; if(mp[num]) return mp[num]; int divisor=sqrt(num); while(num%divisor) { divisor--; } if(divisor==1) ans+=(num+1); else { int otherfac=num/divisor; int x=solve(divisor); int y=solve(otherfac); int its=(max(divisor*y,x*otherfac)+1); mp[num]=its; ans+=its; } return ans; } int main() { int n; cin>>n; long long int *a=new long long int[n]; for(int i=0;i>a[i]; long long int ans=0; for(int i=0;i