結果
| 問題 |
No.2940 Sigma Sigma Div Floor Problem
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2024-10-18 21:38:49 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 182 ms / 6,000 ms |
| コード長 | 909 bytes |
| コンパイル時間 | 171 ms |
| コンパイル使用メモリ | 82,456 KB |
| 実行使用メモリ | 63,568 KB |
| 最終ジャッジ日時 | 2024-10-18 22:32:39 |
| 合計ジャッジ時間 | 5,065 ms |
|
ジャッジサーバーID (参考情報) |
judge / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 29 RE * 18 |
ソースコード
import sys
input = lambda :sys.stdin.readline()[:-1]
ni = lambda :int(input())
na = lambda :list(map(int,input().split()))
yes = lambda :print("yes");Yes = lambda :print("Yes");YES = lambda : print("YES")
no = lambda :print("no");No = lambda :print("No");NO = lambda : print("NO")
#######################################################################
def floor_decomposition(x): # k = floor(x / i) (L < i <= R) となる (k, L, R) のリストを返す
res = []
R = 10 ** 18
while R:
q = x // R
L = x // (q + 1)
res.append((q, L, R))
R = L
return res
mod = 998244353
n = ni()
assert n <= 2 * 10 ** 6
# j * k <= i < (j + 1) * k
ans = 0
for k in range(1, n + 1):
j = 1
while j * k <= n:
# print(j, k, min(n + 1, (j + 1) * k) - j * k)
ans += (min(n + 1, j * (k + 1)) - j * k) * k
ans %= mod
j += 1
ans %= mod
print(ans)