C1072 [Contest #3]毒瘤的菜菜子

内存限制:256 MB 时间限制:2000 ms

题目描述

菜菜子是一个可爱的女孩子。

有一天菜菜子发现自己毒瘤很可爱,于是就变成可爱的毒瘤了。

因为毒瘤可以让自己 idea 变多,于是菜菜子有了很多 idea。

因为菜菜子很毒瘤,所以菜菜子出了一个毒瘤的数据结构题给你做:


给你一个长度为 $n$ 的整数序列 $a_1, a_2, \ldots, a_n$,每次查询都给定两个整数 $l, r$,计算有多少个二元组 $(i,j)$ 满足 $i$ 和 $j$ 都在区间 $[l,r]$ 内且 $a_i$ 是 $a_j$ 的倍数。

输入格式

第一行有两个整数 $n, m$。

第二行有 $n$ 个整数表示给你的序列 $a_1, a_2, \ldots, a_n$。

之后 $m$ 行每行两个数 $l, r$ 表示这次的查询。

所有的數據都滿足 $n = m = 10^5$,$1 \le l \le r \le n$,以及 $1 \le a_i \le 10^5$。(但仍使用 $n,m$ 值较小的样例来做解释。)

输出

輸出共 $m$ 行,每行一个整数表示答案。

样例

样例输入 1

6 3 1 1 4 5 1 4 1 1 4 5 1 4

样例输出 1

1 3 10

提示

样例解释:

第一次询问有 $(1,1)$ 这 $1$ 个二元组满足条件。

第二次询问有 $(4,4), (5,5), (4,5)$ 这 $3$ 个二元组满足条件

第三次询问有 $(1,1), (1, 2), (2,1), (2,2),(3,1),(3,2), (3,3), (4,1), (4, 2), (4, 4)$ 这 $10$ 个二元组满足条件