(q,),*e=[[*map(int,s.split())]for s in open(0)] M=998244353 N=2*10**6 F=[1]*N;l,f=F[:],F[:] for i in range(2,N):F[i]=F[i-1]*i%M;l[i]=-(M//i)*l[M%i]%M;f[i]=f[i-1]*l[i]%M c=lambda l,k:(k<=l)*F[l]*f[k]*f[l-k]%M def pf(n): a,f=[],2 while f*f<=n: if n%f:f+=1 else:a+=[f];n//=f if n>1:a+=[n] return a t=0 for a,b in e: l=len(pf(a)) t+=l print(c(t-1,b-1))