https://www.acmicpc.net/problem/1676
1676번: 팩토리얼 0의 개수
N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오.
www.acmicpc.net
문제 소개에는 소인수분해를 통하여 0의 개수를 알아내는 문제라고 써있던데.. 그래서 소인수분해로 접근해봤을 때, 2, 5의 쌍의 개수만큼 0의 개수가 있을 것이라는 결론에 도달했다. 다만 이를 실제로 구현하지는 않았고, 단순히 10으로 나눈 나머지가 0이 아니게 될 때까지(끝자리가 0이 아닌 정수가 나올 때까지) 나눠버리고 카운트를 해봤다.
import math
n = int(input())
n_fac = math.factorial(n)
count = 0
while n_fac % 10 == 0:
count += 1
n_fac = n_fac // 10
print(count)
'Algorithms' 카테고리의 다른 글
백준 15650. N과 M(2) (0) | 2022.06.16 |
---|---|
백준 2004. 조합 0의 개수 (0) | 2022.06.15 |
백준 9375. 패션왕 신해빈 (0) | 2022.06.13 |
백준 1010. 다리 놓기 (0) | 2022.06.12 |
백준 11051. 이항 계수 2 (0) | 2022.06.11 |
댓글