#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long int ll; typedef pair P; ll n0; vector

f; ll a, b; ll tmin, tmax; void dfs(int i){ if(i==f.size()){ tmin=min(tmin, a+b+n0/a/b-3); tmax=max(tmax, a+b+n0/a/b-3); return; } int e=f[i].second; ll pa=1, p=f[i].first; for(int j=0; j<=e; j++){ ll pb=1; for(int k=0; k<=e-j; k++){ a*=pa, b*=pb; dfs(i+1); a/=pa, b/=pb; pb*=p; } pa*=p; } } int main() { ll n; cin>>n; n0=n; for(ll i=2; i*i<=n; i++){ if(n%i==0){ int e=0; while(n%i==0){ n/=i; e++; } f.push_back(P(i, e)); } } if(n>1) f.push_back(P(n, 1)); a=1, b=1, tmin=n0-1, tmax=0; dfs(0); cout<