#1446. 数列计算

数列计算

数列计算

题目描述

音乐乐队BeBe Geeks!Geeks!的名字并非偶然,因为所有成员都是真正的数学怪才。除此之外,他们喜欢研究数列的各种性质。下面是他们感兴趣的一个例子:

  • AA是一个非空正整数序列,A=(a1,a2,,an)A=(a_{1},a_{2},\ldots,a_{n})
  • G(i,j)=gcd(ai,ai+1,,aj)G(i,j)=\gcd(a_{i},a_{i+1},\ldots,a_{j}),其中1ijn1 \leq i \leq j \leq n
  • M(i,j)=max(ai,ai+1,,aj)M(i,j)=\max(a_{i},a_{i+1},\ldots,a_{j}),其中1ijn1 \leq i \leq j \leq n
  • P(i,j)=G(i,j)×M(i,j)P(i,j)=G(i,j) \times M(i,j),其中1ijn1 \leq i \leq j \leq n
  • F(A)=P(i,j)[1ijn]F(A)=\sum P(i,j)[1 \leq i \leq j \leq n]

给出一个序列AA,你需要求出F(A)mod1000000007F(A) \bmod 1000000007的值。

输入格式

第一行包含一个整数nn,代表序列AA的长度。

第二行包含nn个整数a1a_{1},a2a_{2},\ldots,ana_{n},代表序列AA

输出格式

输出一个整数,代表F(A)mod1000000007F(A) \bmod 1000000007的值。

数据范围与提示

  • 对于30%30\%的数据,1n10001 \leq n \leq 1000
  • 对于100%100\%的数据,1n2000001 \leq n \leq 2000001ai1091 \leq a_{i} \leq 10^{9}

样例

4
1 2 3 4
50
5
2 4 6 12 3
457
见array3.in
见array3.out