[프로그래머스] 약수의 개수와 덧셈(Kotlin)

0

프로그래머스

목록 보기
76/128
post-thumbnail

[프로그래머스] 약수의 개수와 덧셈(Kotlin)

풀이

import kotlin.math.*
import java.util.*

class Solution {
    fun solution(left: Int, right: Int): Int {
        var answer: Int = 0
        for(num in left .. right){
            //num의 약수의 개수
            var cnt: Int = 0 
            
            var numSqrt:Double = sqrt(num.toDouble())
            //num = numSqrt * numSqrt이라면, 약수 1개(numSqrt)를 발견한 것
            if(numSqrt.toInt() == ceil(numSqrt).toInt()) cnt += 1
            
            //num%x == 0이라면, 약수 2개(x, num/x)를 발견한 것
            for(x in 1 until numSqrt.toInt()){
                if(num % x == 0) cnt +=2
            }
            
            if(cnt%2 == 0) answer += num
            else answer -= num
        }
        return answer
    }
}

참고자료

profile
Be able to be vulnerable, in search of truth

0개의 댓글