fn run() {
    let mut s = String::new();
    std::io::stdin().read_line(&mut s).unwrap();
    let mut n: usize = s.trim().parse().unwrap();
    let mut a = 1;
    for i in 2.. {
        if i * i > n {
            break;
        }
        while n % (i * i) == 0 {
            n /= i * i;
            a *= i;
        }
    }
    println!("{} {}", a, n);
}

fn main() {
    run();
}