본문 바로가기
Algorithm/문제풀이_백준

Swift) 백준 1978번 (소수)

by Joahnee 2021. 8. 6.

요구능력 : 소수를 아느냐

코드설명 : 

입력받은 수 만큼 for문을 돌려서 1하고 자기자신이 아닌 경우에만 나누기를 실행했다.

1은 소수가 아닌데 1하고 자기자신으로만 나눠지기 때문에 입력받은 수가 1인 경우에는 따로 처리를 해주고,

다른것들은 2부터 자기자신 이전까지 나눴을 때 나누어 떨어지면 소수가 아니기 때문에 isPrimeNumber를 false로 설정해준다.

아래에서 isPrimeNumber가 true이면 소수이기 때문에 count를 1더해주고,

for문내에서 다음번수를 돌릴때 기본값이 false이면 count가 안세어지니까 true로 초기화를 해준다.

 

 

후기 : 실버4티어 문제치곤 쉽고 빠르게 푼편인것같다.

 

let N = Int(readLine()!)!
var count = 0
var isPrimeNumber = true
var arr = readLine()!.split(separator: " ").map{ Int($0)! }
for i in 0..<arr.count {
    if arr[i] == 1 {
        isPrimeNumber = false
    }else {
        for j in 2..<arr[i] {
            if arr[i] % j == 0 {
                isPrimeNumber = false
            }
        }
    }
    if isPrimeNumber == true {
        count += 1
    }
    isPrimeNumber = true
}
print("\(count)")

 

댓글