상세 컨텐츠

본문 제목

Baekjoon(Kotlin) - 2581. 소수

Problems(Kotlin)/Baekjoon

by KDLiam 2023. 9. 21. 15:22

본문

URL : https://www.acmicpc.net/problem/2581

 

2581번: 소수

M이상 N이하의 자연수 중 소수인 것을 모두 찾아 첫째 줄에 그 합을, 둘째 줄에 그 중 최솟값을 출력한다.  단, M이상 N이하의 자연수 중 소수가 없을 경우는 첫째 줄에 -1을 출력한다.

www.acmicpc.net

 

[ RESULT ]

 

import java.io.BufferedReader
import java.io.BufferedWriter
import java.io.InputStreamReader
import java.io.OutputStreamWriter
import java.lang.StringBuilder

val br = BufferedReader(InputStreamReader(System.`in`))
val bw = BufferedWriter(OutputStreamWriter(System.out))

fun main() {

    val M = br.readLine()!!.toInt()
    val N = br.readLine()!!.toInt()

    var sum = 0
    val arr = mutableListOf<Int>()

    for(i in M .. N) {
        if(isPrime(i)) {
            arr.add(i)
            sum += i
        }
    }

    if(sum == 0) bw.write("-1")
    else {
        bw.write("$sum\n${arr[0]}")
    }

    br.close()
    bw.flush()
    bw.close()
}

fun isPrime(num: Int): Boolean {

    if(num == 1) return false

    for(i in 2 until num) {
        if(num % i == 0) return false
    }

    return true
}

관련글 더보기