#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int sz = 1e5 + 10;
int n, x, y, d1, d2, ans;
set<int> di[sz];
int main() {
  while (cin >> n) {
    for (int i = 0; i < sz; i++) di[i].clear();
    for (int i = 0; i < n; i++) {
      cin >> x >> y;
      ans = 0;
      for (int j = 1; j * j <= x; j++) {
        if (x % j == 0) {
          if (x / j == j) {
            d1 = j;
            if (di[d1].lower_bound(i - y) == di[d1].end()) ans++;
            di[d1].insert(i);
          } else {
            d1 = j;
            d2 = x / j;
            if (di[d1].lower_bound(i - y) == di[d1].end()) ans++;
            if (di[d2].lower_bound(i - y) == di[d2].end()) ans++;
            di[d1].insert(i);
            di[d2].insert(i);
          }
        }
      }
      cout << ans << "\n";
    }
  }
  return 0;
}
