結果

問題 No.1396 Giri
コンテスト
ユーザー zeronosu77108
提出日時 2021-02-17 16:15:57
言語 Kotlin
(2.4.10 + ACL)
コンパイル:
kotlinc -cp /opt/aclib/ac_library.jar _filename_ -include-runtime -d main.jar
実行:
java -cp main.jar:/opt/aclib/ac_library.jar _class_
結果
AC  
実行時間 312 ms / 2,000 ms
+ 516µs
コード長 640 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 10,946 ms
コンパイル使用メモリ 497,852 KB
実行使用メモリ 116,952 KB
最終ジャッジ日時 2026-08-26 18:21:30
合計ジャッジ時間 16,721 ms
ジャッジサーバーID
(参考情報)
judge3_0 / judge2_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 23
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

//
// Created by zeronosu77108 on 2021/02/17.
//
import kotlin.collections.*
import kotlin.math.*

@kotlin.ExperimentalStdlibApi
fun main() {
    val n = readLine()!!.toInt()

    val primes = mutableListOf<Long>()
    val sieve = Array<Long>(n+1) { it.toLong() }
    for (i in 2 .. n.toLong()) {
        if (sieve[i.toInt()] == i) primes.add(i)
        for (p in primes) {
            if (i*p > n) break
            sieve[(i*p).toInt()] = p
        }
    }

    var ans = 1L
    for (p in primes.dropLast(1)) {
        var q = p;
        while (q*p <= n) q*=p
        ans *= q % 998244353
        ans %= 998244353
    }
    println(ans)
}
0