#include using namespace std; typedef long long ll; typedef unsigned long long ull; const int N = 1e6+1; const int oo = 1e9; bool nprime[N]; bool isprime(ull a){ for(ll i=2;(ll)i*i<=a;i++){ if(nprime[i])continue; if(i==a)return 1; if(a%i==0&&i!=a)return 0; } return 1; } ull cut(ull a,ull b,ull c){ if(a==1){ return b; } if(isprime(a)){ return b+(c*a)+1; } if(a%2==0){ ull mx=0; for(ll i=1;i*i<=a;i++){ ull r=0; if(a%i==0){ ll v = (a/i); if(i==1||i==v){ r= cut(i,b+(c*v),c*v); }else{ r= max(cut(i,b+(c*v),c*v),cut(v,b+(c*i),c*i)); } } mx = max(mx,r); //if(a%i==0&&i>3)break; } return mx; } ull mx=0; for(ll i=3;i*i<=a;i+=2){ ull r=0; if(a%i==0){ ull v = (a/i); r= max(cut(i,b+(c*v),c*v),cut(v,b+(c*i),c*i)); } mx = max(mx,r); //if(a%i==0)break; } return mx; } int main(){ for(int i=2;i<=N;i++){ if(nprime[i])continue; for(int j=i+i;j<=N;j+=i){ nprime[j]=1; } } int n; cin>>n; ull sum=0; for(int i=0;i>a; if(a==1){ sum++; }else{ sum += cut(a,0,1); } } cout << sum << endl; }