fork(3) download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. const int M = 31630;
  5. bool f[M + 1];
  6. int n, m, k;
  7. vector<int> prime;
  8. void siv() {
  9. f[0] = f[1] = 1;
  10. for (int i = 4; i <= M; i += 2)
  11. f[i] = 1;
  12. for (int i = 3; i * i <= M; i += 2)
  13. if (!f[i])
  14. for (int j = i * i; j <= M; j += i)
  15. f[j] = 1;
  16. prime.push_back(2);
  17. for (int i = 3; i <= M; i += 2)
  18. if (!f[i])
  19. prime.push_back(i);
  20.  
  21. }
  22. int fact(int x, int k) {
  23. int p = 1, sum;
  24. for (int i = 0, ln = prime.size(); i < ln && prime[i] * prime[i] <= x;
  25. ++i) {
  26. for (sum = 1; x % prime[i] == 0; ++sum, x /= prime[i])
  27. ;
  28. p *= sum;
  29. if (p > k)
  30. return 0;
  31. }
  32. if (x > 1)
  33. p *= 2;
  34. return p == k;
  35. }
  36. int main() {
  37. //freopen("a.in", "r", stdin);
  38. siv();
  39. int ans;
  40. while (scanf("%d%d%d", &n, &m, &k) == 3) {
  41. for (ans = 0; n <= m; ans += fact(n++, k))
  42. ;
  43. printf("%d\n", ans);
  44. }
  45. }
  46.  
  47.  
Success #stdin #stdout 0s 3456KB
stdin
Standard input is empty
stdout
Standard output is empty