fileprivate struct Scanner { private var elements = [String]() private var index = 0 mutating func peek() -> String { while elements.count == index { elements = readLine()!.split(separator: " ").map(String.init) index = 0 } return elements[index] } mutating func next() -> String { let value = peek() index += 1 return value } mutating func nextInt() -> Int { return Int(next())! } mutating func nextDouble() -> Double { return Double(next())! } } func main() { var scanner = Scanner() let N = 5000000 var table = [Bool](repeating: true, count: N + 1) table[1] = false for i in 2 ... N where table[i] { for j in stride(from: i * 2, through: N, by: i) { table[j] = false } } let T = scanner.nextInt() for _ in 0 ..< T { let A = scanner.nextInt() let P = scanner.nextInt() if table[P] { print(A % P == 0 ? 0 : 1) } else { print(-1) } } } main()