def solve(s,n,k,b): primes = [] for p in [2,3,5,7,11,13,17,19,23,29,31]: if b%p==0: primes.append(p) L = len(primes) res = [[0]*(n+1) for _ in range(L)] ans = 100000000 for i in range(n+1): for j,pj in enumerate(primes): ss = s c = 0 while ss%pj==0: ss //= pj c += 1 res[j][i] = c s = 1+(s*s+s*12345)%100000009 for j,pj in enumerate(primes): bb = b c = 0 while bb%pj==0: bb //= pj c += 1 res[j].sort() v = sum(res[j][:k]) ans = min(ans,v//c) return ans Q = int(input()) for _ in range(Q): print(solve(*map(int,input().split())))