합성수 찾기
문제 설명
약수의 개수가 세 개 이상인 수를 합성수라고 합니다. 자연수 n이 매개변수로 주어질 때 n이하의 합성수의 개수를 return 하도록 solution 함수를 완성해 주세요.
제한 사항
- 1 ≤ n ≤ 100
입출력 예
n | result |
10 | 5 |
15 | 8 |
입출력 예 설명
입출력 예 #1
- 10 이하 합성수는 4, 6, 8, 9, 10로 5개입니다. 따라서 5를 return 합니다.
입출력 예 #2
- 15 이하 합성수는 4, 6, 8, 9, 10, 12, 14, 15로 8개입니다. 따라서 8을 return 합니다.
제출
import Foundation
func solution(_ n:Int) -> Int {
if n < 4 {return 0}
var answer = 0
for i in 4...n{
for j in 2..<i{
if i%j == 0 {
answer += 1
break
}
}
}
return answer
}
n이 4보다 작다면 0을 반환 (1은 약수의 개수가 1개, 2,3은 소수이기 때문에 약수의 개수가 2개)
4부터 n까지 나누어 떨어지는 수가 있다면 answer를 1 증가
다른 풀이
import Foundation
func solution(_ n:Int) -> Int {
return (1...n).filter { i in (1...i).filter { i % $0 == 0 }.count > 2 }.count
}
반응형
'📖 Coding Test > Programmers LV.0' 카테고리의 다른 글
[프로그래머스 LV.0] 팩토리얼 (0) | 2022.12.30 |
---|---|
[프로그래머스 LV.0] 최댓값 만들기 (1) (0) | 2022.12.29 |
[프로그래머스 LV.0] 배열 회전시키기 (0) | 2022.12.29 |
[프로그래머스 LV.0] 공 던지기 (0) | 2022.12.29 |
[프로그래머스 LV.0] 2차원으로 만들기 (0) | 2022.12.28 |
댓글