結果
| 問題 |
No.1529 Constant Lcm
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2022-09-17 20:56:25 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 2,681 ms / 3,000 ms |
| コード長 | 637 bytes |
| コンパイル時間 | 205 ms |
| コンパイル使用メモリ | 82,560 KB |
| 実行使用メモリ | 107,284 KB |
| 最終ジャッジ日時 | 2024-12-22 00:59:06 |
| 合計ジャッジ時間 | 29,689 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 24 |
ソースコード
from collections import Counter, defaultdict
N = int(input())
MOD = 998244353
table = [None] * (N + 1)
for i in range(2, N + 1):
if table[i] is None:
for j in range(i, N + 1, i):
if table[j] is None:
table[j] = i
def calc_factors(x):
while x != 1:
t = table[x]
yield t
x //= t
lcm_dict = defaultdict(int)
for x in range(1, N):
y = N - x
ct = Counter(calc_factors(x)) + Counter(calc_factors(y))
for k, v in ct.items():
lcm_dict[k] = max(lcm_dict[k], v)
ans = 1
for k, v in lcm_dict.items():
ans *= pow(k, v, MOD)
ans %= MOD
print(ans)