#CSP202503D. 集体锻炼

集体锻炼

时间限制: 1.0 秒

空间限制: 512 MB

题目背景

西西艾弗岛上弗艾西西大学的同学们正在集体锻炼。

题目描述

现在一共有 nn 个弗艾西西大学的同学站成一排,同学们的体魄各有不同,第 ii 个同学具有力量值 aia_i

在集体锻炼的过程中,老师会指定队列中连续一段同学,让他们协作完成一项运动。这项运动的强度由这些同学的力量值决定,具体而言,假设老师选择了第 ll 到第 rr 个同学,所进行运动的强度就是 gcd(al,al+1,,ar)\gcd(a_l,a_{l+1},\dots,a_r),其中 gcd\gcd 表示最大公约数。特别地,当 l=rl=r 时,我们认为运动的强度就等于 ala_l

基于以上的事实,老师规定对一个区间 [l,r][l,r],它的体育价值 $f([l,r])=l\times r\times \gcd(a_l,a_{l+1},\dots,a_r)$。

老师想求所有区间的体育价值之和,即 l=1nr=lnf([l,r])\sum\limits_{l=1}^n\sum\limits_{r=l}^nf([l,r])

因为人实在太多了,老师不能自己算,于是希望你能帮他写一个程序来计算。如果你写出这个程序,他就会给你加平时分。答案很大,你只需要求出其对 998244353998244353 取模的结果即可。

输入格式

从标准输入读入数据。

输入的第一行为一个整数 nn,表示同学的数量。

接下来一行 nn 个整数 a1,a2,,ana_1,a_2,\dots ,a_n,代表 nn 个同学的力量值。

输出格式

输出到标准输出。

输出一行一个整数表示所有区间的体育价值之和对 998244353998244353 取模的结果。

5
10 2 6 6 8
586
20
7 6 5 5 17 18 13 3 11 12 7 9 16 15 5 19 20 13 14 6
57254

子任务

对于所有数据,保证 1n,ai1061\le n,a_i\le 10^6

本题采用捆绑测试,你只有通过一个子任务中的所有测试点才能得到该子任务的分数。

子任务编号 分值 nn\le aia_i\le
1 30 10001000 10510^5
2 20 10510^5 1010
3 30 10510^5
4 20 10610^6