경험의 기록

문제 : www.acmicpc.net/problem/1978

 

1978번: 소수 찾기

첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.

www.acmicpc.net

 

import java.util.*

fun main(args: Array<String>) = with(Scanner(System.`in`)) {
    val prime : Array<Boolean> = Array(1001) {true}
    var count = 0 // 소수의 개수
    // true = 소수, false = 소수가 아님
    prime[0] = false
    prime[1] = false // 0과 1은 소수가 아님

    for (i in 2..1000)
        if (prime[i])
            for (j in 2 * i..1000 step i) prime[j] = false
    // 소수의 배수들을 싹다 false 처리

    repeat(nextInt()){
        if (prime[nextInt()]) count++
    } // N의 개수만큼 반복하여 입력받고 그 수가 소수인지 판별

    println(count)

}

 

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading