use proconio::input; fn divisors(n: usize) -> Vec { let mut ds = vec![]; let mut k = 1; while k * k < n { if n % k == 0 { ds.push(k); ds.push(n / k); } k += 1; } if k * k == n { ds.push(k); } ds } fn main() { input!(T: usize); for _ in 0 .. T { input!(A: usize, B: usize); if let Some(ans) = divisors(B - A).into_iter().filter_map(|d| if B >= A * (d + 1) { Some((B - A * (d + 1)) / d) } else { None } ).min() { println!("{ans}"); } else { println!("-1"); } } }