ある数論的関数の和

2 secs 1024 MB
shobonvip's icon shobonvip

問題文

正整数 nn に対して、関数 f(n)f(n) を次のように定義します。

  • f(1)=1f(1)=1
  • n2n \ge 2 のとき、 f(n)=dn,dn(f(d)+1)f(n) = \prod_{d|n, d\ne n} (f(d) + 1) である。すなわち、 f(n)f(n)nn の正の約数のうち、 nn でないもの dd すべてに対する f(d)+1f(d)+1 の積である。

例えば、小さい方から次のようになります。

nnf(n)f(n)k=1nf(k)\sum_{k=1}^n f(k)
111
223
325
4611
5213
61831
7233
84275
9681
101899
112101
1223942495

しょぼん王は乗法的関数の和が高速に数え上げられることを知っています。しかし、関数 ff については乗法的ではないことが判明しました。それでも、しょぼん王は ff の和を高速に数え上げたいです。

正整数 NN が与えられるので、 k=1Nf(k)\sum_{k=1}^N f(k) を求めてください。ただし、値は非常に大きくなることがあるため、 998244353998244353 で割った余りを求めてください。

制約

  • 1N1091 \le N \le 10^{9}

入力

NN

出力

答えを出力し、最後に改行せよ。

サンプル

サンプル1

入力

12

出力

2495

サンプル2

入力

1

出力

1

サンプル3

入力

2025

出力

948493294

サンプル4

入力

10000000

出力

111919182

サンプル5

入力

998244353

出力

830498622

提出


Go (1.21)