/* * Author: srtry * Created: 2025-05-31T10:22:10+09:00 * Coding: utf-8-unix */ use proconio::input; use std::io::{stdout,Write,BufWriter}; use std::collections::VecDeque; fn main() { input!{ n:usize } let out = stdout(); let mut out = BufWriter::new(out.lock()); // 3以上の約数のうち最小のものを計算すればいい let mut ans = n; if n%2==0 && n!=4{ ans = n/2; } for factor in 3..=(n as f64).sqrt() as usize { if n%factor==0 { ans = factor; break; } } write!(out, "{}", ans).unwrap(); }