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

Swift) 백준 2581번 (소수)

by Joahnee 2021. 8. 7.

요구능력 : 소수가 뭔지 아느냐, 배열을 쓸줄 아느냐

 

코드설명 : 

1978번을 풀었다면 간단히 풀릴건데, 안풀었다면 풀고오시는걸 추천드립니다.(https://sapjilkingios.tistory.com/40)

 

allPrimeNumber 변수는 소수가 하나라도 있는지 판별하기 위해 사용했다.

하나도 없으면 -1을 출력해야되기 때문에..

그리고 소수라면 배열에 추가해서 합과 최소값을 구해주었다.

이외의 1978번과 다른점은 많이 없는듯 하다.

 

 

후기 : 이전 1978번에서 배열쓰는 요소를 넣은것 같은데, 이건 실버5티어네..

 

let M = Int(readLine()!)!
let N = Int(readLine()!)!

var sum = 0
var isPrimeNumber = true
var allPrimeNumber = false
var arr: [Int] = []

for i in M...N {
    if i == 1 {
        isPrimeNumber = false
    }else {
        for j in 2..<i {
            if i % j == 0 {
                isPrimeNumber = false
            }
        }
        
        if isPrimeNumber == true {
            arr.append(i)
            allPrimeNumber = true
        }
    }
    isPrimeNumber = true
}

if allPrimeNumber {
    for k in 0..<arr.count {
        sum += arr[k]
    }
    print("\(sum)")
    print("\(arr.min()!)")
}else {
    print("-1")
}

댓글