#include //#include using namespace std; // using namespace atcoder; // using mint = modint1000000007; // const int mod = 1000000007; // using mint = modint998244353; // const int mod = 998244353; // const int INF = 1e9; // const long long LINF = 1e18; #define rep(i, n) for (int i = 0; i < (n); ++i) #define rep2(i, l, r) for (int i = (l); i < (r); ++i) #define rrep(i, n) for (int i = (n)-1; i >= 0; --i) #define rrep2(i, l, r) for (int i = (r)-1; i >= (l); --i) #define all(x) (x).begin(), (x).end() #define allR(x) (x).rbegin(), (x).rend() #define P pair template inline bool chmax(A &a, const B &b) { if (a < b) { a = b; return true; } return false; } template inline bool chmin(A &a, const B &b) { if (a > b) { a = b; return true; } return false; } #ifndef KWM_T_MATH_MATHUTIL_HPP #define KWM_T_MATH_MATHUTIL_HPP #include #include namespace kwm_t::math { // 約数の個数 inline long long divisor_count(long long n) { std::vector exponents; for (long long i = 2; i * i <= n; i++) { int count = 0; while (n % i == 0) { count++; n /= i; } if (count != 0) exponents.push_back(count); } if (n != 1) exponents.push_back(1); long long result = 1; for (long long e : exponents) { result *= (e + 1); } return result; } // 約数列挙 inline std::vector divisors(long long n) { std::vector result; for (long long i = 1; i * i <= n; i++) { if (n % i == 0) { result.push_back(i); if (i * i != n) result.push_back(n / i); } } std::sort(result.begin(), result.end()); return result; } // 素因数分解 inline std::vector> prime_factorize(long long n) { std::vector> result; for (long long i = 2; i * i <= n; i++) { int count = 0; while (n % i == 0) { count++; n /= i; } if (count != 0) result.emplace_back(i, count); } if (n != 1) result.emplace_back(n, 1); return result; } // オイラーのφ関数 inline long long euler_phi(long long n) { long long result = n; for (long long i = 2; i * i <= n; i++) { if (n % i == 0) { result -= result / i; while (n % i == 0) n /= i; } } if (n != 1) result -= result / n; return result; } } // namespace kwm_t::math #endif // KWM_T_MATH_MATHUTIL_HPP int main() { std::ios::sync_with_stdio(false); std::cin.tie(nullptr); long long m; cin >> m; auto ds = kwm_t::math::divisors(m); if (ds.size() <= 2) { cout << 1 << " " << m << endl; } else { auto x = ds[1]; auto y = m / x; cout << x << " " << y << endl; } return 0; }