반응형
입력 & 출력
자연수 M과 N이 주어질 때 M이상 N이하의 자연수 중 소수인 것을 모두 골라
이들 소수의 합과 최솟값을 찾는 프로그램을 작성하시오.
풀이
소수를 구한 뒤, 이들의 최소 값과 합을 구한다.
소수는 자신을 제외한 다른 수에서 나누어 떨어지는 수로 반복문을 돌려 소수를 판별한다.
Swift 전체 코드
var decimal : [Bool] = .init(repeating: true, count: 10001)
var total = 0
var min = 10001
let first = Int(readLine()!)!
let last = Int(readLine()!)!
decimal[0] = false
decimal[1] = false
if last > 2 {
for i in 3...last {
for j in 2..<i {
if i % j == 0 {
decimal[i] = false
break
}
}
}
}
for i in first...last {
if decimal[i] == true {
total += i
if min > i {
min = i
}
}
}
if total == 0 {
print(-1)
} else {
print(total)
print(min)
}
반응형
'개발 > 알고리즘' 카테고리의 다른 글
[백준] BFS - 1697번 숨바꼭질 (0) | 2021.10.05 |
---|---|
[백준] BFS - 7576번 토마토 (0) | 2021.10.01 |
[백준] BFS - 2178번 미로탐색 (0) | 2021.09.28 |
[백준] BFS - 1926번 그림 (0) | 2021.08.30 |
[백준] 그리디 - 1931번 회의실 배정 (0) | 2021.04.29 |