#include #include #include #include #include #include #include #include #include #include #include #include #include #include #define REP(i,n) for(int i = 0; n > i; i++) #define MOD 1000000007 #define accm(i) ( (i)%2 ? od[((i)-1)/2] : ev[(i)/2]) #define acc(i) ( i%2 ? cpod[(i-1)/2] : cpev[i/2]) using namespace std; typedef vector Ivec; typedef pair pii; int arr [1000005]; void Eratosthenes(int N) {//Nまでの素数表 for (int i = 0; i < N; i++) { arr[i] = 1; } for (int i = 2; i < sqrt(N); i++) { if (arr[i]) { for (int j = i * 2; j <= N; j += i) { arr[j] = 0; } } } int cou = 0; for (int i = 2; N >= i; i++) { if (arr[i]) { arr[cou] = i; cou++; } } } int main() { long long int m; scanf("%lld", &m); Eratosthenes(1000004); for (int i = 0; (long long int)arr[i]*arr[i] <= m; i++) { if (arr[i] == 0) { printf(""); } if (!(m%arr[i])) { printf("%d %lld\n", arr[i], m/arr[i]); return 0; } } printf("%d %lld\n", 1, m); return 0; }