설명
- 수학에서 말하는 팩토리얼에 관련된 문제로, 첫 줄에 입력받을 숫자의 개수를 입력받는다
- 그 다음 줄 부터는 입력받는 숫자에 대한 팩토리얼 값에 들어있는 0의 개수를 출력해준다
코드
t = int(input())
result = []
# 팩토리얼 값에 들어있는 0의 개수를 구하는 함수(러닝타임 짧은 ver)
def count(n):
cnt = 0
while n != 0:
n //= 5
cnt += n
return cnt
# t개 입력받은 숫자를 count함수에 넣고 리턴 값을 result에 넣어줌
for _ in range(t):
n = int(input())
result.append(count(n))
# 결과값을 1줄에 1개씩 출력
for i in range(t):
print(result[i])
` count ` 함수 설명
# 팩토리얼 값에 들어있는 0의 개수를 구하는 함수(러닝타임 짧은 ver)
def count(n):
cnt = 0
while n != 0:
n //= 5
cnt += n
return cnt
n의 팩토리얼에서 5의 거듭제곱 수로 나누어 떨어지는 횟수가 계산됩니다. 횟수를 cnt에 저장하고 반환한다.
팩토리얼 값에서 0의 개수를 세기 위해선 10의 거듭제곱 수로 나누어 떨어지는 횟수를 세면 된다.
즉 2와 5 중에서 나누어 떨어지는 수가 0의 개수가 되는 것이다.
'BeakJoon > Python' 카테고리의 다른 글
[Python] 백준 #25206번: 너의 평점은 (0) | 2023.12.16 |
---|---|
[Python] 백준 #2606번: 바이러스 (0) | 2023.12.13 |
[Python] 백준 #1072번: 게임 (0) | 2023.12.07 |
[Python] 백준 #2953: 나는 요리사다 (1) | 2023.12.06 |
[Python] 백준 #1929번: 소수 구하기 (1) | 2023.12.05 |