#3639. Petya 与约数

Petya 与约数

题目描述

小 Petya 喜欢研究数的约数。一天,Petya 碰到了下面这个问题:

给你 nn 个形如 "xix_i yiy_i" 的询问。对每个询问,Petya 要统计 xix_i 的约数中有多少个不能整除 xi−yi,xi−yi+1,…,xi−1x_{i-y_i}, x_{i-y_i+1}, \ldots, x_{i-1} 中的任何一个数。请帮帮他。

输入格式

第一行包含一个整数 nn(1≤n≤1051 \le n \le 10^5)。接下来 nn 行,每行两个用空格隔开的整数 xix_i 和 yiy_i(1≤xi≤1051 \le x_i \le 10^5,0≤yi≤i−10 \le y_i \le i-1,其中 ii 是询问的序号,从 1 开始编号)。

若某询问的 yi=0y_i = 0,则该询问的答案就是 xix_i 的约数个数,此时无需考虑之前的任何 xx。

输出格式

对每个询问输出一行答案:满足 k∣xik \mid x_i 且对所有 jj(i−yi≤j<ii - y_i \le j \lt i)都有 k∤xjk \nmid x_j 的正整数 kk 的个数。

6
4 0
3 1
5 2
6 2
18 4
10000 3
3
1
1
2
2
22

说明/提示

前 5 个询问的答案对应的约数如下:

  1. 1, 2, 4
  2. 3
  3. 5
  4. 2, 6
  5. 9, 18