結果
問題 | No.2880 Max Sigma Mod |
ユーザー | sortA0329 |
提出日時 | 2024-08-01 19:29:15 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 1,181 ms / 3,000 ms |
コード長 | 565 bytes |
コンパイル時間 | 404 ms |
コンパイル使用メモリ | 82,444 KB |
実行使用メモリ | 75,888 KB |
最終ジャッジ日時 | 2024-08-01 19:29:34 |
合計ジャッジ時間 | 19,390 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 48 |
ソースコード
# 入力を受け取る N, M = map(int, input().split()) # 「増加分」の計算 O(√x) def calc(x : int): res = 0 i = 1 while i * i <= x: if x % i == 0: if i <= M: res -= i # i * i == x の時は i == x / i なので重複してしまう if i * i != x and x // i <= M: res -= x // i i += 1 return res # 1 <= x <= N を満たすxについて sum(x mod i) の最大値を計算 res = 0 modsum = 0 for x in range(1, N + 1): modsum += M + calc(x) res = max(res, modsum) print(res)