백준 1676 팩토리얼 0의 개수 문제 풀이
팩토리얼이란
- 그 수보다 작거나 같은 모든 양의 정수의 곱이다.
- 기호는 느낌표(!)를 쓰며 팩토리얼이라고 읽는다.
- 1부터 n까지의 모든 자연수의 곱을 n에 상대하여 이르는 말.
▷ 5! = 1×2×3×4×5
파이썬 팩토리얼 함수 사용
수학모듈 math를 import 하여 factorial() 함수를 사용한다.
- math.factorial(n)
만약 n이 정수형이 아니거나 음수인 경우 ValueError 발생한다.
풀이
- 입력된 숫자 N의 팩토리얼 수를 구한다.
- math 모듈의 factorial() 함수 활용한다.
- 팩토리얼 수를 거꾸로 만든다.
- 입력된 수가 10인 경우 팩토리얼 수는 3628800
- 3628800을 reverse 하면 0088263
- reverse 된 수를 반복하면서 0인 개수를 센다.
- 만약 0이 아닌 수가 나오면 반복문에서 나온다.
- 0의 개수 출력한다.
import math
N = input()
factoNum = 0
reverseNum = 0
cnt = 0
#1.입력된 숫자 N의 팩토리얼 수를 구한다.
factoNum = math.factorial(int(N))
#2.팩토리얼 수를 거꾸로 만든다.
# 입력된 수가 10인 경우 팩토리얼 수는 3628800
# 3628800 을 reverse 하면 0088263
reverseNum = str(factoNum)[::-1]
#3.reverse 된 수를 반복하면서 0인 개수를 센다.
# 만약 0이 아닌 수가 나오면 반복문에서 나온다.
for j in reverseNum:
if (int(j) == 0):
cnt += 1
else:
break
#4.0의 개수 출력.
print(cnt)
"""
10
2
"""
▶ 파이썬 자습서 참고 사이트
'코딩라이브러리 > 파이썬' 카테고리의 다른 글
[파이썬] 백준 23899 알고리즘 수업 선택 정렬 5 (0) | 2024.06.28 |
---|---|
[파이썬] 백준 23881 알고리즘 수업 선택 정렬1 (0) | 2024.06.26 |
[파이썬] 백준 6603 로또 (조합 combinations) (0) | 2024.06.24 |
[파이썬] 백준 2309 일곱 난쟁이 (조합 combination) (0) | 2024.06.21 |
[파이썬] 백준 13706 이분탐색이란 (0) | 2024.06.19 |