#include using LL = long long; const int N = 67; const int MOD = 998244353; int inv[N]; void solve() { LL n, s; scanf("%lld%lld", &n, &s); int ans = s % MOD; for(int i = 2; i <= 100; ++i) if(n % i == 0) { LL mul = 1; int tmp = 0, cnt = 0; while(n % i == 0) { ++cnt; n /= i; mul *= i; } for(int j = 0, c = 1; j <= tmp; ++j) { tmp = (tmp + mul % MOD * c) % MOD; c = 1LL * c * (s + j - 1) % MOD * inv[j + 1] % MOD; mul /= i; } ans = 1LL * ans * tmp % MOD; } printf("%d\n", ans); } int main() { inv[1] = 1; for(int i = 2; i < N; ++i) inv[i] = (MOD - 1LL * MOD / i * inv[MOD % i]) % MOD; int cases = 1; scanf("%d", &cases); while(cases--) solve(); return 0; }