포스트

193. 약수의 개수와 덧셈


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import Foundation

func solution(_ left:Int, _ right:Int) -> Int {
    
    var n : Int = 0
    var num : Int = 0
    var answer : Int = 0
    
    for i in left ... right {
        n = 1
        num = 0
        while i >= n {
            if i % n == 0 {
                num += 1
            }
            n+=1
        }
        if num % 2 == 0 {
            answer += i
        } else {
            answer -= i
        }
       
    }
       
    return answer
}

for 문과 while문을 통해 약수를 구하고 while이 끝난 다음 if문을 통해 해당 약수의 개수가 짝수 또는 홀수일때를 판별하여 처리하였다.

다른코드

1
2
3
func solution(_ left: Int, _ right: Int) -> Int {
    return (left...right).map { i in (1...i).filter { i % $0 == 0 }.count % 2 == 0 ? i : -i }.reduce(0, +)
}
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.