#include #include #include #include #include #include #include #include #include #include #include #include #define rep(i,j,k) for (int i = j; i <= k; i++) #define per(i,j,k) for (int i = j; i >= k; i--) using namespace std; typedef long long LL; const int low(int x) { return x&-x; } const int N = 1e6 + 10; const int mod = 1e9 + 7; const int INF = 0x7FFFFFFF; int T, n, m, p[N], f[N], t; void init() { t = 0; rep(i, 2, N - 1) { if (!f[i]) p[t++] = i; for (int j = 0; j < t&&p[j] * i < N; j++) { f[p[j] * i] = 1; if (i%p[j] == 0) break; } } } int main() { init(); scanf("%d", &T); while (T--) { scanf("%d%d", &n, &m); int ans = 0, flag = 0; rep(i, 0, t - 1) { if (p[i] > m || 1LL * p[i] * m >= n) break; ans++; if (m % p[i] == 0) break; if (p[i] * p[i] > m) { flag = 1; break; } } if (!flag) printf("%d\n", ans); else { int q = 0, h = t - 1; while (q <= h) { int mid = q + h >> 1; if (p[mid] > m || 1LL * p[mid] * m >= n) h = mid - 1; else q = mid + 1; } printf("%d\n", q); } } return 0; }