백준 1978번: 소수찾기(Swift)

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

 

1978번: 소수 찾기

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

www.acmicpc.net

 

함수로 푸니 좀더 수월했다. 반복문을 끝까지 돌아서 나왔을 경우(소수)에는 1을 리턴, 중간에 0으로 나뉘면 0을 리턴 하게해 수가 저장된 배열에  소수와 아닌수를 구별 해 reduce로 합쳐서 출력했다. 

import Foundation

var num = readLine()
var line = readLine()!.split(separator: " ").map({Int($0)!})
var count = 0
func calc(input: Int) -> Int {
    if input == 1{
        return 0
    }
    for item in 2..<input {
        if input%item == 0 {
            return 0
        }
    }
    return 1
}

let sum = line.map({calc(input: $0)}).reduce(0){$0+$1}
print(sum)

'Algorithm > 백준' 카테고리의 다른 글

백준 11653번: 소인수분해 (Swift)  (0) 2021.08.25
백준 2581번: 소수(Swift)  (0) 2021.08.17
백준 20809번: 알파벳 찾기(Swift)  (0) 2021.07.09
백준 15650번 : N과 M(2)  (0) 2021.05.14
백준 15649번 : N과 M(1)  (0) 2021.05.14