显示原始代码
#include <bits/stdc++.h>
using namespace std;
#define ll long long
const ll N = 1e6 + 8;
const ll X = 1e9 + 7;
ll dp[N];
vector<ll> get_factors(ll x) {
vector<ll> ans;
for (ll i = 1; i <= x / i; i++) {
if (x % i == 0) {
ans.push_back(i);
if (i != x / i)
ans.push_back(x / i);
}
}
sort(ans.begin(), ans.end());
return ans;
}
int main() {
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
dp[1] = 1;
dp[0] = 1;
dp[2] = 2;
ll n, m;
cin >> n >> m;
for (ll i = 3; i <= n; i++) {
dp[i] = dp[i - 1] * i;
}
ll c = 0;
c = dp[n] / (dp[m] * dp[n - m]);
vector<ll> arr = get_factors(c);
ll ans = arr.size() % X;
cout << ans;
return 0;
}