結果
| 問題 | No.308 素数は通れません |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2020-03-28 15:24:10 |
| 言語 | Kotlin (2.1.0) |
| 結果 |
AC
|
| 実行時間 | 425 ms / 1,000 ms |
| コード長 | 1,744 bytes |
| コンパイル時間 | 13,891 ms |
| コンパイル使用メモリ | 468,728 KB |
| 実行使用メモリ | 60,888 KB |
| 最終ジャッジ日時 | 2025-01-02 11:31:18 |
| 合計ジャッジ時間 | 52,728 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 107 |
ソースコード
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.subtract(8.toBigInteger()).isProbablePrime(100) && t.rem(8.toBigInteger()) == BigInteger.ONE) 14 else 8)
}
cout.flush()
}