#include #include #include using namespace std; int *sol ; unsigned long long cal(unsigned long long x) { if(sol[x]!=0) return sol[x]; unsigned long long var=(unsigned long long)sqrt(x); int i,temp; for( i=2;i<=var;i++) { if(x%i==0) { temp = 1+i*(cal(x/i)); if(temp>sol[x]) sol[x]=temp; temp = 1+(x/i)*cal(i); if(temp>sol[x]) sol[x]=temp; } } if(sol[x]==0) { sol[x]=x+1; } return sol[x]; } int main() { int n; sol = (int*)calloc(sizeof(int),1000001); sol[0]=0; sol[1]=1; unsigned long long x,ans=0; scanf("%d",&n); for(int i=0;i