結果

問題 No.2902 ZERO!!
ユーザー D.F.ナス太郎
提出日時 2024-09-27 20:27:35
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 366 ms / 2,000 ms
コード長 605 bytes
コンパイル時間 283 ms
コンパイル使用メモリ 82,000 KB
実行使用メモリ 103,988 KB
最終ジャッジ日時 2024-09-27 20:27:44
合計ジャッジ時間 7,612 ms
ジャッジサーバーID
(参考情報)
judge2 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 41
権限があれば一括ダウンロードができます

ソースコード

diff #

N = int(input())
MOD = 998244353

DP = [i for i in range(N + 1)]
R = {}
for i in range(2, N + 1):
  t = DP[i]
  if t != 1:
    if t not in R:
      R[t] = 0
    for j in range(i, N + 1, i):
      DP[j] //= t
      R[t] += 1

M = R[2]
DP = [0] * (M + 1)
L = list(R.values())

for i in range(1, M + 1):
  t = 1
  for j in range(len(L) - 1, -1, -1):
    if L[j] < i:
      L.pop()
    else:
      n = L[j] // i
      t *= n + 1
      t %= MOD
  DP[i] = (t - 1) % MOD

ans = 0
for i in range(1, M + 1):
  if i != M:
    DP[i] -= DP[i + 1]
    DP[i] %= MOD
  ans += DP[i] * i % MOD
  ans %= MOD

print(ans)



0