백준 2581번 소수

quokka·2022년 3월 1일
0

코딩테스트

목록 보기
59/63

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

소수는 2아니면 홀수에서 나옵니다. 홀수값일때 홀수를 나머지연산 해줘서 나머지가 0이나오면(예를들어 9%3 = 0입니다.) 소수가 아니므로 stride를 이용해서 홀수값만 연산해주고, 소수이면 현재 for문을 벗어나도록 하였습니다.

let input1 = Int(readLine()!)!
let input2 = Int(readLine()!)!

var array = [Int]()
for i in input1...input2 {
    if i%2 != 0 { // 홀수일때
        for j in stride(from: 3, through: i, by: 2) {
            if i==j {
                array.append(i)
            } else if i%j == 0 { //소수 아님
                break
            }
        }
    } else if i==2 { //2 일때
        array.append(i)
    }
}

if array.isEmpty {
    print(-1)
} else {
    print(array.reduce(0, {$0+$1}))
    print(array.min()!)
}
profile
iOS를 공부하는 개발자입니다~ㅎㅎ

0개의 댓글

Powered by GraphCDN, the GraphQL CDN