#include <iostream> #include <algorithm> #include <numeric> #include <vector> #include <string> #include <map> #include <set> #include <queue> #include <deque> #include <stack> #include <iomanip> #include <functional> #include <bitset> #include <limits> #include <cstdio> #include <cmath> #include <cassert> #include <random> #ifdef DEBUG #include "library/Utility/debug.cpp" #else #define debug(...) #endif #define rep(i,n) for(int i=0;i<(n);++i) #define EL '\n' #define print(i) std::cout << (i) << '\n' #define all(v) (v).begin(), (v).end() using lnt = long long; struct FIO{FIO(){std::cin.tie(0);std::cout.tie(0);std::ios_base::sync_with_stdio(0);std::cout<<std::fixed<<std::setprecision(15);}}fIO; /*-*/ int main() { int t; std::cin >> t; lnt N=5000005; std::vector<int> prime(N,true); prime[0]=0; prime[1]=0; for(lnt i=2;i<N;i++) { if(!prime[i]) continue; for(lnt j=2;j*i<N;j++) { prime[i*j]=false; } } rep(tt,t) { lnt a,p; std::cin >> a >> p; if(!prime[p]) print(-1); else if(a%p==0) print(0); else print(1); } }