#include #include #include using namespace std; int Q; vector >fact(int B) { vector >ret; for(int i=2;i*i<=B;i++)if(B%i==0) { int c=0; while(B%i==0)B/=i,c++; ret.push_back(make_pair(i,c)); } if(B>1)ret.push_back(make_pair(B,1)); return ret; } main() { cin>>Q; for(;Q--;) { long x; int N,K,B; cin>>x>>N>>K>>B; vector >ps=fact(B); vector >A(N+1); for(int i=0;i<=N;i++) { { vectornow(ps.size()); long t=x; for(int j=0;j&a,const vector&b){ return a[i]cnt(ps.size()); for(int j=0;j