본문 바로가기
🍎 Swift/Programmers

[👾 Programmers] 14. 약수의 합

by 솔비님 2024. 6. 18.

1. 문제 설명 (📎Link)

정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.

2. 제한사항

n은 0 이상 3000이하인 정수입니다.


📝 문제

func solution(_ n:Int) -> Int {
    return 0
}

 

 

💻 내가 푼 방법(테스트 실패)

1. 정수 n의 약수를 모두 구하기 → 정수 n을 어떠한 숫자 x로 나누었을 때 나머지가 0이라면 x는 n의 약수

2. 약수를 모두 더하는 기능

func solution(_ n:Int) -> Int {
    //n을 나누어주기 위한 0보다 큰 정수x 선언
    var x = 0
    //약수를 모두 더한 결과값을 받기 위한 변수 result 선언
    var result = 0
    
    //변수x가 정수n보다 작거나 같을 때 까지 코드 실행
    //n을 x로 나누었을 때 나머지가 0인 x를 모두 result 값에 더한다
    //나머지가 0이 아니라면 x에 1씩 더해서 코드를 반복한다
    while x <= n {
        if n % x == 0 {
         result += x
        }
        x += 1
    }
    
    return result
}

🚨 실패 이유: 정수n 을 나누기 위해서는 x가 0이 되면 안됨..

→ x를 1로 올려줌      -해결-

 

 

💻 내가 푼 방법(테스트 성공)

func solution(_ n:Int) -> Int {
    var x = 1
    var result = 0
    
    while x <= n {
        if n % x == 0 {
         result += x
        }
        x += 1
    }
    
    return result
}

 


🔎 의문점과 공부한 것

1.