func_code_string: #include <bits/stdc++.h>   using namespace std;   const int N = 3000020, M = 120;   int L, R, p, ans, tot, cnt, g[N], f[N], P[M];   bool buc[N], vis[M];   void dfs(int k, int res) {     g[++cnt] = res;     for (int i = k; i <= tot; i++) {       if (1ll * P[i] * res <= 1ll * R) dfs(i, res * P[i]);     }   }   signed main() {     memset(f, 0x3f, sizeof(f));     cin >> L >> R >> p;     for (int i = 2; i <= p; i++) {       if (!vis[i]) P[++tot] = i;       for (int j = 1; j <= tot && i * P[j] <= p; j++) {         vis[i * P[j]] = 1;         if (i % P[j] == 0) break;       }     }     dfs(1, 1);     sort(g + 1, g + cnt + 1);     f[1] = 0;     for (int i = 2; i <= p; i++) {       int j = 1;       for (int k = 1; k <= cnt; k++) {         while (j <= cnt && 1ll * g[j] != 1ll * g[k] * i) j++;         if (j == cnt + 1) break;         f[j] = min(f[j], f[k] + 1);         if (f[j] + i <= p && g[j] >= L && !buc[j]) buc[j] = 1, ans++;       }     }     cout << ans;     return 0;   }   