#include using namespace std; typedef long long ll; typedef vector vi; typedef vector vii; typedef vector > vvi; typedef vector > vvii; typedef pair pi; typedef pair pii; typedef vector > vpi; typedef vector > vpii; #define boost std::ios::sync_with_stdio(false);cin.tie(0);cout.tie(0) #define FOR(i,a,b) for(i= (a) ; i<(b); ++i) #define pb push_back #define mp make_pair #define all(x) (x).begin() , (x).end() #define out(x) cout< cnt; ll solve(ll n) { if(n==1) return 1; if(n==2) return 3; if(n==3) return 4; if(cnt.find(n)!=cnt.end()) return cnt[n]; ll i,ans=1, largest=1, z, copy=n; bool ok=0; while (n%2 == 0) { ok=1; n = n/2; } vii prime; if(ok) prime.pb(2); for (i = 3; i*i <= n ; i = i+2) { ok=0; while (n%i == 0) { ok=1; n = n/i; } if(ok) prime.pb(i); } if (n > 2){ prime.pb(n); } ll tmp=0, rem=-1; FOR(i,0,(ll)prime.size()) { ll p = prime[i]; z = solve(copy/p); if(p*z > tmp){ tmp = max(tmp,p*z); rem=p; } } // z = solve(copy/largest); // ans+=largest*z; ans += tmp; // cout<<"n = "<