link

class Solution {
public:
#define LL long long
const int mod=1E9+7;
int c[10015][15];
vector<int> waysToFillArray(vector<vector<int>>& queries) {
for(int i=1;i<10015;i++){
c[i][0]=1;
for(int j=1;j<=min(i,14);j++) {
if(j==i) c[i][j]=1;
else c[i][j]=(c[i-1][j]+c[i-1][j-1])%mod;
}
}
vector<int> res;
for(auto& q:queries){
int n=q[0];
int k=q[1];
int sum=1;
for(int i=2;i*i<=k;i++){
if(k%i==0){
int cnt=0;
while(k%i==0){
cnt++;
k/=i;
}
sum=(LL)sum*c[n-1+cnt][cnt]%mod;
}
}
if(k>1){
sum=(LL)sum*n%mod;
}
res.push_back(sum);
}
return res;
}
};