#define _USE_MATH_DEFINES #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; void integerFactorization(long long n, vector& base, vector& expo) { base.clear(); expo.clear(); long long a = 2; while(a * a <= n){ int b = 0; while(n % a == 0){ ++ b; n /= a; } if(b > 0){ base.push_back(a); expo.push_back(b); } ++ a; } if(n > 1){ base.push_back(n); expo.push_back(1); } } long long solve(const vector& base, const vector& expo, int k, const vector& x) { if(k == base.size()){ long long ans = 0; for(int i=0; i<3; ++i) ans += x[i] - 1; return ans; } long long ans = LLONG_MAX; vector y = x; for(int a=0; a<=expo[k]; ++a){ for(int b=0; a+b<=expo[k]; ++b){ int c = expo[k] - a - b; for(int i=0; i> n; vector base; vector expo; integerFactorization(n, base, expo); vector x(3, 1); cout << solve(base, expo, 0, x) << ' ' << (n - 1) << endl; return 0; }