약수의 개수와 합계

문제 설명

두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요.

func solution(_ left: Int, _ right: Int) -> Int {
    var result = 0
    
	// left 부터 right 까지 모든 수 반복
    for num in left...right {
        var count = 0
    // 1부터 해당 숫자까지의 수로 나누어 약수 갯수 계산
        for i in 1...num {
            if num % i == 0 {
                count += 1
            }
        }
        
    // 약수의 갯수가 짝수면 + 홀수면 -   
        if count % 2 == 0 {
            result += num
        } else {
            result -= num
        }
    }
    
    return result
}

 

먼저 left 부터 right 까지 모든 수를 반복하여 num 변수에 담아둔다.

담아둔 1부터 num 변수까지의 수를 i 에 다시 넣고 num 과 i 를 나눴을때 0이 나오는 즉 약수의 갯수를 count 함수에 담아준다.

이를 통해 count 를 2로 나눴을때, 즉 짝수일때 result 값에 num을 더해주고 그렇지 않다면 빼주면 답이 해결된다.

'◽️ Programming > ◽️ Algorithm' 카테고리의 다른 글

부족한 금액 계산하기  (0) 2024.03.22
문자열 내림차순으로 정렬하기  (0) 2024.03.20
내적  (1) 2024.03.15
수박수박수박수?  (1) 2024.03.14
가운데 글자 가져오기  (0) 2024.03.13