Where who wants to meet someone

백준 Swift [1978] 소수 찾기 본문

백준 알고리즘 문제 기록/약수, 배수와 소수

백준 Swift [1978] 소수 찾기

Lust3r 2023. 7. 1. 17:26
728x90

난이도

브론즈 II

 

문제

https://www.acmicpc.net/problem/1978

 

1978번: 소수 찾기

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

www.acmicpc.net

 

내 답안

let n = Int(readLine()!)!
let input = readLine()!.split(separator: " ").map { Int($0)! }

// 소수의 개수를 담을 프로퍼티 sum
var sum = 0

// input으로 받은 값으로 돌아야 하니 forEach 사용
input.forEach { value in
    // 매번 약수의 개수를 담는 count 초기화
    var count = 0

    // 1부터 value까지 돌면서 i가 약수라면 count에 1 더해주기
    for i in 1...value {
        if value % i == 0 {
            count += 1
        }
    }

    // value까지 다 돌았을 때 약수의 개수가 2개라면 소수이기 때문에 sum에 1 더해주기
    if count == 2 {
        sum += 1
    }
}

// 최종 sum의 값(= 소수의 개수) 출력
print(sum)

- 소수: 1과 자기 자신만을 약수로 가지는 수