문제설명
정수 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
}