본문 바로가기
스터디(beakjoon)

Kotlin] 백준 1676번 풀이

by 김마리님 2024. 9. 9.

https://www.acmicpc.net/problem/1676

 

 

더보기

이 문제.. 

사실 진짜 간단한 문제임.

 

2에 5를 곱하면 10이 된다. 즉, 짝수는 2를 반드시 포함하기 때문에 짝수와 5를 곱하면 0이 하나 더 늘어난다.

또한 약수에 2가 있으면 반드시 짝수이다. 즉, 1!을 제외한 모든 팩토리얼의 값은 짝수이다.

즉, 곱하는 값에 5가 있다면 반드시 0이 늘어난다.

또한 25, 125 처럼 5가 2개, 3개 있는 경우는 그 수 만큼 늘어나기 때문에, 곱해야 하는 팩토리얼 값이 5의 배수라면 그 내부에 있는 5의 갯수를 파악해야한다.

 

이를 코드로 풀면,

 

import java.math.BigInteger
import kotlin.math.log
import kotlin.math.sqrt

fun main() {
    question1676()
}

fun question1676() {
    val number = readln().toInt()
    var zeroNumber = 0
    for(i in 1 .. number) {
        if(i % 5 == 0) {
            var modNumber = i
            var addNumber = 0
            while (modNumber % 5 == 0) {
                modNumber /= 5
                addNumber += 1
            }

            zeroNumber += addNumber
        }
    }

    println(zeroNumber)
}

 

반응형

'스터디(beakjoon)' 카테고리의 다른 글

Kotlin] 백준 1758번 풀이  (1) 2024.09.09
Kotlin] 백준 9536번 풀이  (0) 2024.09.01
Kotlin] 백준 2238번 풀이  (1) 2024.09.01
Kotlin] 백준 1158번 풀이  (0) 2024.09.01
Kotlin] 백준 2606 풀이  (0) 2024.05.23