#include using namespace std; typedef signed long long ll; #undef _P #define _P(...) (void)printf(__VA_ARGS__) #define FOR(x,to) for(x=0;x enumdiv(ll n) { map V; for(ll i=2;i*i<=n;i++) while(n%i==0) V[i]++,n/=i; if(n>1) V[n]++; return V; } void solve() { int i,j,k,l,r,x,y; string s; cin>>Q; while(Q--) { cin>>S>>N>>K>>B; N++; map D=enumdiv(B); vector V; ITR(it,D) V.push_back(it->first); ZERO(num); FOR(i,N) { FOR(j,V.size()) { ll t=S; while(t%V[j]==0) num[j][i]++, t/=V[j]; } S = 1+(S*S+S*12345)%mo; } int mi=1000000000; FOR(j,V.size()) { sort(num[j],num[j]+N); x=0; FOR(i,K) x+=num[j][i]; mi=min(mi,x/D[V[j]]); } cout<