fork download
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. constexpr int mod = 1e9 + 7;
  6. int n,m,id;
  7. int div0, div1;
  8. long long ans = 1;
  9.  
  10. void getdiv(){
  11. for(int i = 1; i*i <= id; ++i){
  12. if(id % i == 0){
  13. div0 += 2;
  14. if(i*i == id) --div0;
  15. }
  16. }
  17. --div0;
  18. }
  19.  
  20. int main()
  21. {
  22. ios_base::sync_with_stdio(false);
  23. cin.tie(0);
  24. cout.tie(0);
  25. cin >> n >> m >> id;
  26. getdiv();
  27.  
  28. div1 = m/id - 1;
  29. if(div0-n+1 < 0 or div1 - n + 1 < 0){
  30. cout << 0;
  31. return 0;
  32. }
  33. for(int i = div0; i > max(div0-n+1, 0); --i){
  34. ans *= i;
  35. //cout << i << " " << ans << "\n";
  36. ans %= mod;
  37. }
  38. for(int i = div1; i > max(div1-n+1,0); --i){
  39. ans *= i;
  40. ans %= mod;
  41. }
  42. ans *= 2;
  43. if(ans > mod) ans -= mod;
  44. cout << ans << '\n';
  45. return 0;
  46. }
Runtime error #stdin #stdout 0s 4396KB
stdin
Standard input is empty
stdout
Standard output is empty