結果
| 問題 | No.3505 Sum of Prod of Root |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-04-18 18:53:36 |
| 言語 | PyPy3 (7.3.17) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,126 bytes |
| 記録 | |
| コンパイル時間 | 306 ms |
| コンパイル使用メモリ | 85,420 KB |
| 実行使用メモリ | 156,428 KB |
| 最終ジャッジ日時 | 2026-04-18 18:53:44 |
| 合計ジャッジ時間 | 6,998 ms |
|
ジャッジサーバーID (参考情報) |
judge2_1 / judge1_1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 3 WA * 10 |
ソースコード
"""
くね。
k = 1, 2 さえ処理すれば ok
k = 1 : 自明
k = 2 : s = isqrt(n) - 1
"""
from math import isqrt
from collections import deque
import sys
mod = 998244353
input = sys.stdin.readline
II = lambda : int(input())
MI = lambda : (int(_) for _ in input().split())
LI = lambda : list(int(_) for _ in input().split())
SI = lambda : input()
n = II()
def calc(n):
v = isqrt(n) - 1
s2 = v*(v+1)*(2*v+1)//6 % mod
s3 = (v*(v+1)//2)**2 % mod
s4 = v*(v+1)*(2*v+1)*(3*v*v+3*v-1)//30 % mod
tmp = 2*s4 + 3*s3 + s2
v += 1
return (tmp + v*(v*v+n)*(n-v*v+1)//2) % mod
lim = int(n ** (1 / 3) + 10)
inv = [0] + [pow(i, -1, mod) for i in range(1, lim)]
eve = []
for x in range(2, lim):
p = x ** 3
m = x * inv[x-1] % mod
while p <= n:
eve.append((p, m))
p *= x
eve.sort()
eve.append((n+1, -1))
ans = 0
i = 0
cc = 1
pv = 0
while i < len(eve):
p = eve[i][0]
nv = calc(p - 1)
ans += (nv - pv) * cc % mod
pv = nv
if i == len(eve) - 1: break
while i < len(eve) and eve[i][0] == p:
cc = (cc * eve[i][1]) % mod
i += 1
print(ans)