#1450. 求公约数

求公约数

求公约数

题目描述

小翔有一个长度为nn的排列aa。定义一个区间[lr][l,r]的价值为:

$$\text{value}(l,r)=\max_{l\leq i<j\leq r}\left\{\gcd\left(a_{i}, a_{j}\right)\right\} $$

其中gcd(ij)\gcd(i,j)表示整数iijj的最大公约数。

现在,小翔给了你一个任务:对于每个正整数x(1xn)x(1\leq x\leq n),你需要计算出有多少对llr(1l<rn)r(1\leq l<r\leq n),满足value(lr)=x\text{value}(l,r)=x

输入格式

第一行一个正整数nn,表示排列的长度。

第二行nn个正整数a1a_{1}a2a_{2}\ldotsana_{n},来描述排列aa

输出格式

nn行,第ii行输出当x=ix=i时的答案。

数据范围与提示

  • 对于50%50\%的数据,1n1001\leq n\leq 100
  • 对于100%100\%的数据,1n1051\leq n\leq 10^{5}

样例

5
1 4 3 5 2
8
2
0
0
0
见gcd2.in
见gcd2.out
见gcd3.in
见gcd3.out