#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long int lint; #define rep(i, n) for (lint i = 0; i < n; i++) #define sort(v) sort((v).begin(), (v).end()) #define reverse(v) reverse((v).begin(), (v).end()) #define upper(v,hoge) upper_bound(v.begin(),v.end(),hoge) #define lower(v,hoge) lower_bound(v.begin(),v.end(),hoge) #define mp make_pair #define enld endl int main() { lint N; cin >> N; lint ans = 0; for (lint a = sqrt(N)+10; a>=1; a--) { if (N % (a * a) == 0) { cout << a << ' ' << N / (a * a) << endl; return 0; } } }