문제풀이/BOJ
[Python] BOJ/백준 1676번 팩토리얼 0의 개수
서채리
2021. 9. 3. 00:40
[문제]
https://www.acmicpc.net/problem/1676
1676번: 팩토리얼 0의 개수
N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오.
www.acmicpc.net
[풀이]
끝자리가 0이 되려면 2와 5를 곱했을 경우에만 10이 나와 끝에 0이 추가된다.
따라서 소인수분해 했을 때 2와 5의 최소값을 구하면 되는 문제인데 숫자가 커질수록 5가 2보다 적게 나와 5의 개수만 구해도 되겠다는 생각이 들었다.
따라서 n이 5 이상일 동안 cnt에 5로 나눴을 때의 몫을 더한 후 출력한다.
[코드]
import sys
if __name__ == '__main__':
n = int(sys.stdin.readline())
cnt = 0
while n >= 5:
cnt += n // 5
n //= 5
print(cnt)