fn is_prime(n: usize) -> bool { for k in 2.. { if k * k > n { break; } if n % k == 0 { return false; } } true } fn run() { let mut s = String::new(); std::io::stdin().read_line(&mut s).unwrap(); let n: usize = s.trim().parse().unwrap(); if n == 1 { println!("1"); return; } let mut a = vec![]; for i in 100001.. { if is_prime(i) { a.push(i); } if a.len() >= 10 { break; } } let mut b = vec![]; for x in a.iter() { for y in a.iter() { b.push(*x * *y); } } b.sort(); b.dedup(); println!("{}", b[n - 2]); } fn main() { run(); }