#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 #include typedef long long int ll; //#include using namespace std; ll gcd(ll a, ll b) { if (a < b)swap(a, b); if (b == 0)return a; return gcd(b, a % b); } int lcm(int a, int b) { return a * b / gcd(a, b); } int main() { int Q; Q = 1; //cin >> Q; while (Q--) { ll n; cin >> n; vector>ans; ans.push_back({ n,1 }); for (ll i = 1; i * i <= n; i++) { if (n % i)continue; ll t = n / i; ll p = sqrt(t); ll r = sqrt(i); if (t == p * p)ans.push_back({ i,p }); if (i == r * r)ans.push_back({n/i,r}); } sort(ans.begin(), ans.end()); cout << ans[0].second << " " << ans[0].first; } return 0; }