본문 바로가기
코딩라이브러리/파이썬

[파이썬] 백준 1676 팩토리얼 0의 개수 (factorial n!)

by 유니네 라이브러리 2024. 6. 25.

백준 1676 팩토리얼 0의 개수 문제 풀이

백준 1676 팩토리얼 0의 개수

팩토리얼이란

  • 그 수보다 작거나 같은 모든 양의 정수의 곱이다.
  • 기호는 느낌표(!)를 쓰며 팩토리얼이라고 읽는다.
  • 1부터 n까지의 모든 자연수의 곱을 n에 상대하여 이르는 말.

▷ 5! = 1×2×3×4×5

 

파이썬 팩토리얼 함수 사용

수학모듈 math를 import 하여 factorial() 함수를 사용한다.

  • math.factorial(n)
    만약 n이 정수형이 아니거나 음수인 경우 ValueError 발생한다.

풀이

  1. 입력된 숫자 N의 팩토리얼 수를 구한다.
    • math 모듈의 factorial() 함수 활용한다.
  2. 팩토리얼 수를 거꾸로 만든다.
    • 입력된 수가 10인 경우 팩토리얼 수는 3628800
    • 3628800을 reverse 하면 0088263
  3. reverse 된 수를 반복하면서 0인 개수를 센다.
    • 만약 0이 아닌 수가 나오면 반복문에서 나온다.
  4. 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
"""

 

▶ 파이썬 자습서 참고 사이트

 

math — Mathematical functions

This module provides access to the mathematical functions defined by the C standard. These functions cannot be used with complex numbers; use the functions of the same name from the cmath module if...

docs.python.org