結果

問題 No.308 素数は通れません
ユーザー firiexp
提出日時 2020-03-28 15:18:01
言語 Kotlin
(2.1.0)
結果
WA  
実行時間 -
コード長 1,696 bytes
コンパイル時間 17,587 ms
コンパイル使用メモリ 466,524 KB
実行使用メモリ 60,668 KB
最終ジャッジ日時 2025-01-02 11:25:43
合計ジャッジ時間 53,252 ms
ジャッジサーバーID
(参考情報)
judge1 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 87 WA * 20
権限があれば一括ダウンロードができます

ソースコード

diff #

import java.io.PrintWriter
import java.lang.Math.abs
import java.math.BigDecimal
import java.math.BigInteger
import java.util.*
import kotlin.math.max
import kotlin.math.min

@JvmField val INPUT = System.`in`
@JvmField val OUTPUT = System.out
@JvmField val cin = INPUT.bufferedReader()
fun readLine(): String? = cin.readLine()
fun readLn() = cin.readLine()!!
@JvmField var _tokenizer: StringTokenizer = StringTokenizer("")
fun read(): String {
    while (_tokenizer.hasMoreTokens().not()) _tokenizer = StringTokenizer(cin.readLine() ?: return "", " ")
    return _tokenizer.nextToken()
}
fun readInt() = read().toInt()
fun readDouble() = read().toDouble()
fun readLong() = read().toLong()
fun readStrings(n: Int) = List(n) { read() }
fun readLines(n: Int) = List(n) { readLn() }
fun readInts(n: Int) = List(n) { read().toInt() }
fun readIntArray(n: Int) = IntArray(n) { read().toInt() }
fun readDoubles(n: Int) = List(n) { read().toDouble() }
fun readDoubleArray(n: Int) = DoubleArray(n) { read().toDouble() }
fun readLongs(n: Int) = List(n) { read().toLong() }
fun readLongArray(n: Int) = LongArray(n) { read().toLong() }
@JvmField val cout = PrintWriter(OUTPUT, false)

fun main(args: Array<String>) {
    val t = read().toBigInteger()
    if(t <= 25.toBigInteger()){
        val tt = t.toInt()
        cout.println( when(tt) {
            4 -> 3
            6 -> 5
            in arrayOf(8, 9, 10, 15, 16, 22) -> 7
            12 -> 11
            14 -> 13
            20 -> 19
            21 -> 19
            24 -> 23
            25 -> 23
            else -> 8
        })
    }else {
        cout.println(if(t.minus(8.toBigInteger()).isProbablePrime(100)) 14 else 8)
    }
    cout.flush()
}
0