약수의 합

KSang·2023년 11월 29일
0

[Kotlin]코드카타

목록 보기
13/100

문제설명

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

제한사항

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

진행

조건문과 %연산자를 이용하면 될것같다

0이나오면 더하고 그외의 숫자가 나오면 무시한다

반복문을 사용해 1부터 입력받은 값까지 전부 나눠주자

fun solution(n: Int): Int {
    var answer = 0
    var num = 1

    while (num <= n){
        if(n % num == 0){
            answer += num
        }
        num++
    }
    return answer

}

조건문을 수행후 증가 연산자를 사용해 num을 증가시켜 반복한다

코드

package com.example.codekata

fun main() {
    var num1: Int = 0
    println("숫자를 입력하세요.")
    num1 = readln().toIntOrNull() ?:0
    if (num1 > 3000){
        println("숫자가 너무 큽니다")
    }
    else if (num1 <= 0){
        println("0보다 커야 합니다")
    }
    else
    println("${solution(num1)}")
}

fun solution(n: Int): Int {
    var answer = 0
    var num = 1

    while (num <= n){
        if(n % num == 0){
            answer += num
        }
        num++
    }
    return answer

}

0개의 댓글