From b42bd35595ccaf0c28c590b91c7ed42f88835395 Mon Sep 17 00:00:00 2001 From: vrexpert Date: Tue, 14 May 2024 23:23:41 +0900 Subject: [PATCH] 2024-05-14 solved --- ...30\354\227\260\354\206\215\355\225\251.kt" | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 "SeongHoonC/\353\210\204\354\240\201\355\225\251/23-\354\206\214\354\210\230\354\235\230\354\227\260\354\206\215\355\225\251.kt" diff --git "a/SeongHoonC/\353\210\204\354\240\201\355\225\251/23-\354\206\214\354\210\230\354\235\230\354\227\260\354\206\215\355\225\251.kt" "b/SeongHoonC/\353\210\204\354\240\201\355\225\251/23-\354\206\214\354\210\230\354\235\230\354\227\260\354\206\215\355\225\251.kt" new file mode 100644 index 00000000..ff5ed194 --- /dev/null +++ "b/SeongHoonC/\353\210\204\354\240\201\355\225\251/23-\354\206\214\354\210\230\354\235\230\354\227\260\354\206\215\355\225\251.kt" @@ -0,0 +1,39 @@ +import java.io.BufferedReader +import java.io.InputStreamReader +import kotlin.math.sqrt + +fun main() { + val br = BufferedReader(InputStreamReader(System.`in`)) + var (head, tail) = 0 to 0 + val n = br.readLine().toInt() + val primes = findPrimeNumbers(n) + var count = 0 + + while (head < primes.size && tail < primes.size) { + val sum = primes.subList(head, tail + 1).sum() + if (sum < n) { + tail++ + continue + } + if (sum == n) { + count++ + } + head++ + } + println(count) +} + +private fun findPrimeNumbers(rangeMax: Int): List { + return (2..rangeMax).filter { + isPrime(it) + } +} + +private fun isPrime(num: Int): Boolean { + for (i in 2..sqrt(num.toDouble()).toInt()) { + if (num % i == 0) { + return false + } + } + return true +}