#include "bits/stdc++.h"
using namespace std;

#define pb push_back
#define fr(i, n) for(int i = 0; i < n; i++)
#define frr(i, n) for(int i = 1; i <= n; i++)

#define dbg(x) cout << #x << " = " << x << endl
#define all(x) x.begin(),x.end()
#define ms(x, i) memset(x, i, sizeof(x))

#define p(x) cout << x << "\n"
#define pv(x) fr(i, x.size()) cout << x[i] << " \n"[i==x.size()-1]

#define f first
#define s second

#define fastio ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL)

typedef long long int ll;
typedef long double ld;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
typedef vector<int> vi;
typedef vector<ll> vl;

const int INF = 0x3f3f3f3f;
const ll LINF = 0x3f3f3f3f3f3f3f;

int main(){
    fastio;

    ll n;
    cin >> n;

    if (n == 1ll) {
        cout << "1 1\n";
        return 0;
    }

    set<ll> divs;
    for (ll d = 1ll; d*d <= n; d++) {

        if (n%d == 0) {

            divs.insert(d);
            if (n%(n/d) == 0) divs.insert((n/d));
        }
    }

    // for (auto d : divs) dbg(d);

    while (1) {

        ll d1 = *divs.begin();
        divs.erase(d1);
        ll d2 = *divs.begin();

        ll g = __gcd(d1, d2);

        if (d1*d2/g == n) {
            cout << d1 << " " << d2 << endl;
            return 0;
        }
    }
}
