結果

問題 No.1529 Constant Lcm
コンテスト
ユーザー LyricalMaestro
提出日時 2026-10-16 01:18:10
言語 PyPy3
(8.0.0 + ACL)
コンパイル:
pypy3 -mpy_compile _filename_
実行:
pypy3 _filename_
結果
AC  
実行時間 100 ms / 3,000 ms
+ 219µs
コード長 1,178 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 80 ms
コンパイル使用メモリ 64,984 KB
実行使用メモリ 86,432 KB
最終ジャッジ日時 2026-10-16 01:18:22
合計ジャッジ時間 3,575 ms
ジャッジサーバーID
(参考情報)
judge5_0 / judge2_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2
other AC * 25
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

## https://yukicoder.me/problems/no/1529

MOD = 998244353

def main():
    N = int(input())

    # エラトステネスの篩
    is_primes = [True] * N
    primes = []
    is_primes[1] = False
    for p in range(2, N):
        if not is_primes[p]:
            continue

        primes.append(p)
        x = 2 * p
        while x < N:
            is_primes[x] = False
            x += p

    # 答えの計算
    answer = 1
    array_forward = [0] * N
    array_backward = [0] * N
    for p in primes:
        q = p
        max_y = 0
        while q < N:
            x = q
            while x < N:
                array_forward[x] += 1
                y = array_forward[x] + array_backward[x]
                max_y = max(max_y, y)

                array_backward[N - x] += 1
                y = array_forward[N - x] + array_backward[N - x]
                max_y = max(max_y, y)
                x += q
            q *= p

        x = p
        while x < N:
            array_forward[x] = 0
            array_backward[N - x] = 0
            x += p

        answer *= pow(p, max_y, MOD)
        answer %= MOD
    print(answer)















if __name__ == "__main__":
    main()
0