use proconio::input; #[proconio::fastout] fn main() { input! { t: usize, } for _ in 0..t { input! { a: usize, b: usize, } if let Some(result) = solve(a, b) { println!("{}", result); } else { println!("-1"); } } } fn solve(a: usize, b: usize) -> Option { if a == b { return Some(0); } let list = divisors(b - a); for divisor in list { if divisor >= a { return Some(divisor - a); } } None } fn divisors(n: usize) -> Vec { let mut list = Vec::new(); { let mut i = 1; while i * i <= n { if n % i == 0 { list.push(i); if n / i != i { list.push(n / i); } } i += 1; } } list.sort(); list }