#include #include #include #define rep(i,a,b) for(int i=(a);i<(b);i++) #define pb push_back #define all(a) a.begin(),a.end() #define ll long long using namespace std; ll N; vector V; void divisor(void) { for(ll i=2; i*i <= N; i++) { if(N%i == 0) { V.pb(i); if(i*i != N) V.pb(N/i); } } } int main(void) { cin >> N; ll max = N-1; ll min = N-1; divisor(); // for(auto i:V) cout << i << " "; cout << endl; sort(all(V)); rep(i,0,V.size()){ if(min < V[i] *2 -3) break; rep(j,i,V.size()) { ll t = V[i] * V[j]; if(N < t) break; if(N % t) continue; // printf("V[i]=%lld V[j]=%lld t=%lld\n",V[i],V[j],t); min = std::min(min, V[i]+V[j]+(N/t)-3); } } cout << min << " " << max << endl; return 0; }