#include #define int long long using namespace std; const int mod=998244353; const int N=1e6+10; const int pri[30]={0,2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97}; int n,p[N],k[N],m,s,inv[N]; int Pow(int a,int b=mod-2){ int s=1; while(b){ if(b&1)s=s*a%mod; a=a*a%mod;b>>=1; } return s; } int C[N]; void solve(){ cin>>n>>s;m=0; int x=n; for(int i=1;i<=25;++i)if(x%pri[i]==0){ p[++m]=pri[i];while(x%pri[i]==0)++k[m],x/=pri[i]; } int ans=1; C[0]=1; for(int i=0;i<60;++i)C[i+1]=C[i]*((s-2+i+1)%mod+mod)%mod*inv[i+1]%mod; for(int i=1;i<=m;++i){ int val=0; for(int j=0;j<=k[i];++j){ val=(val+Pow(p[i],k[i]-j)%mod*C[j]%mod)%mod; } ans=ans*val%mod; } ans=ans*(s%mod)%mod; cout<>T;while(T--)solve(); return 0; } /* */