https://www.acmicpc.net/problem/1676
1676번: 팩토리얼 0의 개수
N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오.
www.acmicpc.net
[난이도] Silver3
[유형] 수학
[풀이]
모든 10은 2x5로 만들어지기 때문에 1~N 모든 수를 소인수 분해 했을 때 2와 5의 개수 중의 최솟값이 답이다.
항상 5가 더 적은 것이 보장되기 때문에 5의 개수만 구하면 된다.
import java.io.BufferedReader
import java.io.InputStreamReader
fun main() = with(BufferedReader(InputStreamReader(System.`in`))){
val N=readLine().toInt()
var cnt:Int=0
for(i in 1..N) {
var j=i
while(j>0 && j%5==0){
cnt++
j/=5
}
}
println(cnt)
}
https://github.com/has2/Problem-Solving/blob/master/boj-solved.ac/Silver3/1676.cpp
'Problem-Solving > BOJ' 카테고리의 다른 글
[BOJ/백준][Silver3] 9613 : GCD 합 (Kotlin) (0) | 2021.05.18 |
---|---|
[BOJ/백준][Silver2] 2004 : 조합 0의 개수 (Kotlin)) (0) | 2021.05.18 |
[BOJ/백준][Silver1] 6588 : 골드바흐의 추측 (Kotlin) (0) | 2021.05.18 |
[BOJ/백준][Silver2] 1929 : 소수 구하기 (Kotlin) (0) | 2021.05.18 |
[BOJ/백준][Silver3] 10799 : 쇠막대기 (Kotlin) (0) | 2021.05.18 |