3
// calculating combinatorics4
long long comb(int n, int m) {5
static long long c[20001][10001] = {0};6
if (c[n][m] != 0) return c[n][m];11
res = (comb(n - 1, m) + comb(n - 1, m - 1)) % MOD;18
vector<int> waysToFillArray(vector<vector<int>> &queries) {21
for (int i = 0; i < queries.size(); i++) {22
// counting numbers of distinct prime factors23
// note that numbers within 10000 have at most 1 prime factor over 10024
// if we loop to queries[i][1] here we will get a TLE since one loop grows25
// from 100 to 10000 here27
for (int j = 2; j <= 97; j++) {28
if (queries[i][1] % j == 0) {30
while (queries[i][1] % j == 0) {34
factors.push_back(count);37
if (queries[i][1] != 1) factors.push_back(1);41
for (int f : factors) {42
tmp = (tmp * comb(f + queries[i][0] - 1, queries[i][0] - 1)) % MOD;