본문 바로가기

BOJ/Python

[BOJ/백준] 1676 - 팩토리얼 0의 개수 (Python)

문제 링크

N!이 (정수)*(10^n)일 때 n이 무엇인지 구하는 문제이다.

 

1부터 N까지의 수를 곱할 때  2의 m제곱수와 5의 n제곱수, 2와 5를 제외한 수들을 곱한 정수 파트의 부분으로 나눌 수 있다.

따라서 m과 n의 수 중 작은 값이 문제에서 원하는 답이 된다.

그러나 항상 n이 작기 때문에 사실상 5의 n제곱수만 있어도 된다.

4까지의 값까지는 5의 배수가 없으므로 5부터 for문을 돌려 5의 총 개수를 구하면 된다.

num=int(input())

five=0
for i in range(5, num+1):
    while i%5==0:
        five+=1
        i//=5
print(five)