B. 【提高】简洁的数学

    传统题 1000ms 256MiB

【提高】简洁的数学

题目描述

西西酱累了,于是直接丢给你一道数学题。

定义函数 F(a,b)F(a, b) 表示有多少个有序数对 (x,y)(x, y) 满足 xx, yy 能同时整除 aabb

  • 例如:F(4,6)=4F(4, 6) = 4,对应 (1,1),(1,2),(2,1),(2,2)(1, 1), (1, 2), (2, 1), (2, 2)

现在西西酱指定了一个 NN,让你计算 i=1Nj=1iF(i,j)\sum_{i=1}^{N} \sum_{j=1}^{i} F(i, j) 是多少。

换句话说,枚举 1N1 \sim N 范围内的每个 ii,再枚举 1i1 \sim i 范围内的每个 jj,计算 F(i,j)F(i, j) 的总和是多少。

答案可能很大,输出答案对 998244353998244353 取模的结果。

输入格式

第一行一个整数 TT,表示数据组数。

对于每组数据,包含一行,一个整数 NN,如题所述。

输出格式

每组数据输出一行,一个整数,表示求和式对 998244353998244353 取模的结果。

样例

【样例 1 输入】

7
2
5
50
500
5000
50000
5000000

【样例 1 输出】

6
35
4878
507589
51320164
147901422
342983243

【样例 1 解释】

对于第一组数据有 F(1,1)=1F(1, 1) = 1F(2,1)=1F(2, 1) = 1F(2,2)=4F(2, 2) = 4

数据范围与提示

所有测试数据的范围和特点如下表所示:

测试点编号 NN \le
121 \sim 2 5050
353 \sim 5 500500
6106 \sim 10 50005000
111411 \sim 14 5000050000
152015 \sim 20 5×1065 \times 10^6

对于所有测试点,保证 1N5×1061 \le N \le 5 \times 10^6

来源