#include #include using namespace std; constexpr int64_t p=998244353; array ftbl=[]{arrayret;ret[0]=1;for(int i=1;i<202501;i++){ret[i]=(ret[i-1]*i)%p;}return ret;}(); array invtbl=[]{arrayret;ret[0]=1;ret[1]=1;for(int64_t i=2;i<202501;i++){ret[i]=p-((p-p%i)/i*ret[p%i])%p;}return ret;}(); array invftbl=[]{arrayret;ret[0]=1;for(int i=1;i<202501;i++){ret[i]=(ret[i-1]*invtbl[i])%p;}return ret;}(); int f(int n,int r){return((ftbl[n]*int64_t(n-2*r+1))%p*(invftbl[r]*invftbl[n-r+1])%p)%p;} int main(){int T;cin>>T;while(T--){ int N,A;cin>>N>>A; int64_t ans=0; for(int i=1;i*i<=A;i++){ if(A%i!=0)continue; int r1=N-1-A/i,r2=N-1-i; if(r1>=0&&r1%2==0)ans+=f(N-1,r1/2); if(r2>=0&&r2%2==0&&r1!=r2)ans+=f(N-1,r2/2);ans%=p; } cout<