#pragma GCC optimize("O3", "unroll-loops") #include using namespace std; #define ll long long #define ld long double pair solve(int n){ int a = 1, b = n; int i = 2; for (; i * i <= b; ++i){ if (b % (i * i) == 0){ a *= i, b /= i * i; i = 1; } } return {a, b}; } int main(void){ int n; cin >> n; pair res = solve(n); cout << res.first << " " << res.second << endl; return 0; }