use proconio::input; use std::io::{stdout,Write,BufWriter}; const BIG:usize = 1000000; fn main() { input!{ x:usize } let out = stdout(); let mut out = BufWriter::new(out.lock()); let mut z = x; for i in (2..=BIG).rev() { if z%(i*i) == 0 { z /= i*i; if z==1 { break; } } } write!(out, "{}", z).unwrap(); }