結果

問題 No.2891 Mint
ユーザー 寝癖
提出日時 2024-09-13 22:36:17
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 137 ms / 2,000 ms
コード長 483 bytes
コンパイル時間 297 ms
コンパイル使用メモリ 81,792 KB
実行使用メモリ 75,136 KB
最終ジャッジ日時 2024-09-13 22:36:30
合計ジャッジ時間 5,810 ms
ジャッジサーバーID
(参考情報)
judge1 / judge6
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 54
権限があれば一括ダウンロードができます

ソースコード

diff #

N, M = map(int, input().split())

ans = 0
mod = 998244353
B = 10**6 + 5
for k in range(1, B):
    ans += M % k
    ans %= mod
    if k == N:
        print(ans)
        exit()

for p in range(B):
    # B以上N以下の数であって、M/kがpとなるようなkの範囲
    l = M // (p+1) + 1 if M % (p+1) == 0 else (M+p)//(p+1)
    r = M // p if p else N
    l = max(l, B)
    r = min(r, N)
    if l <= r:
        ans += (r-l+1) * (2*M-l*p-r*p) // 2
        ans %= mod

print(ans)
0