
문제 출처 : https://www.acmicpc.net/problem/1676
N! (팩토리얼)을 계산했을 때, 결과의 끝에 연속으로 붙는 0의 개수를 구하는 문제다.
10! = 3628800 → 뒤에 0이 2개
하지만 팩토리얼 값 자체는 너무 커져서 직접 계산하는 방식은 불가능하다.
0이 생기려면 10 = 2 × 5가 필요하다.
2가 많고, 5가 적기 때문에 결과적으로 0의 개수는 5의 개수와 같다
import sys
input = sys.stdin.readline
N = int(input())
count = 0
while N > 0:
N //= 5
count += N
print(count)
팩토리얼을 전체 계산하지 않고 어떻게 0의 개수를 구할까?
-> 5의 개수.
를 묻는 문제였다.