#include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; #define int long long typedef vector VI; typedef pair pii; typedef vector VP; typedef vector VS; typedef priority_queue PQ; templatebool chmax(T &a, const T &b) { if (a < b) { a = b; return 1; } return 0; } templatebool chmin(T &a, const T &b) { if (b < a) { a = b; return 1; } return 0; } #define fore(i,a) for(auto &i:a) #define REP(i,n) for(int i=0;i, greater > q2; signed main() { cin.tie(0); ios::sync_with_stdio(false); int N; cin >> N; int l = 2; VI so, shi; while (l*l <= N) { int cnt = 0; while (N%l == 0) { cnt++; N /= l; } if (cnt > 0) { shi.push_back(cnt); so.push_back(l); } l++; } if (N != 1) { shi.push_back(1); so.push_back(N); } int ans1 = 1; int ans2 = 1; REP(i, so.size()) { REP(j, shi[i] / 2)ans1 *= so[i]; if (shi[i] % 2) { ans2 *= so[i]; //cout << so[i] << endl; } } cout << ans1 << " " << ans2 << endl; return 0; }