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 |