문제 설명
정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.
제한 사항
n
은 0 이상 3000이하인 정수입니다.입출력 예
n | return |
---|---|
12 | 28 |
5 | 6 |
입출력 예 설명
입출력 예 #1
12의 약수는 1, 2, 3, 4, 6, 12입니다. 이를 모두 더하면 28입니다.
입출력 예 #2
5의 약수는 1, 5입니다. 이를 모두 더하면 6입니다.
풀이 과정
우선 약수에 대해 알아봅시다!
약수?
0이 아닌 모든 정수로 나누어 떨어지는 수
- for ~ in 구문을 사용해 합을 구하는 과정이 반복될 수 있도록 합니다.
- n을 0이 아닌 1부터 n까지의 정수로 나누어줬을 때 몫이 0이 나오는 식을 만들어줍니다.
- 2번을 if 구문에 넣어 조건을 충족할 경우 전체의 합을 구하도록 합니다.
- 전체의 합을 return 합니다.
Solution
func solution(_ n:Int) -> Int {
var sum = 0
for i in 1..<n+1 {
if n % i == 0 {
sum += i
}
}
return sum
}
느낀점
오늘도 어김 없이 사용한 for ~ in 구문…ㅎㅎ
얼른 고차함수 공부해서 활용하자 하는 다짐을 다시 해보았다.
계산기만 완성하면 바로 고차함수 파러 가보자 :>