백준 1676번 | 실버 5 | 팩토리얼 0의 개수 | Python

kimminjunnn·2025년 11월 23일

알고리즘

목록 보기
244/311

문제 출처 : 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의 개수.
를 묻는 문제였다.

profile
Frontend Engineers

0개의 댓글