파이썬으로 팩토리얼 계산하는 방법
'팩토리얼(factorial)'이라는 단어를 고등학교 수학 시간에 배운 기억이 있을 것입니다. 계산기 없이 팩토리얼을 구하는 것은 결코 쉽지 않습니다. 10의 팩토리얼을 1×2×3×4…를 일일이 손으로 곱해 계산하고 싶은 사람은 없을 테니까요.
다행히 파이썬에서는 몇 가지 방법으로 팩토리얼을 간편하게 계산할 수 있습니다. 이 가이드에서는 세 가지 접근 방식, 즉 math.factorial() 메서드, 반복문(iterative), 재귀 함수(recursive)를 활용한 방법을 차례로 살펴봅니다.
그럼 바로 시작해 보겠습니다!
팩토리얼이란 무엇인가?
팩토리얼은 1부터 어떤 수까지의 모든 자연수를 곱한 값을 의미합니다.
수학 공식으로 표현하면 다음과 같습니다:
n! = 1 × 2 × 3 × ... × n
느낌표(!)는 팩토리얼을 계산한다는 표시이며, 'n'은 팩토리얼을 구하려는 대상 숫자입니다. n 이하의 모든 정수를 곱하면 계산이 완료됩니다.
단, 음수에 대해서는 팩토리얼이 정의되지 않으므로 계산할 수 없습니다.
방법 1: math.factorial() 메서드
파이썬의 math 모듈을 사용하면 팩토리얼을 가장 간편하게 계산할 수 있습니다. math 라이브러리는 다양한 수학 함수를 제공하며, 예를 들어 난수 생성 같은 기능에도 활용할 수 있습니다.
math.factorial() 메서드는 숫자를 인자로 받아 그 팩토리얼을 반환합니다. 이 메서드를 사용하기 전에 먼저 math 라이브러리를 임포트해야 합니다:
import math
이제 17의 팩토리얼을 구하는 파이썬 프로그램을 작성해 보겠습니다:
number = 17
fact = math.factorial(number)
print("{}의 팩토리얼은 {}입니다.".format(number, fact))실행 결과는 다음과 같습니다: 17의 팩토리얼은 355687428096000입니다.
factorial() 메서드가 입력받은 숫자의 팩토리얼을 반환하면, format() 문을 사용해 결과값을 문자열 안에 삽입하여 콘솔에 출력합니다.
방법 2: 반복문(Iterative) 활용
외부 라이브러리 없이도 팩토리얼을 계산할 수 있습니다. 간단한 for 문으로 범위 내 모든 숫자를 곱하면 되기 때문입니다.
먼저 두 개의 변수를 선언합니다:
number = 17 fact = 1
첫 번째 변수는 팩토리얼을 구하려는 숫자를 저장하고, 두 번째 변수는 팩토리얼의 누적 결과를 추적합니다.
다음으로 1부터 해당 숫자까지 반복하는 for 루프를 작성합니다:
for num in range(1, number + 1):
fact = fact * num
print("{}의 팩토리얼은 {}입니다.".format(number, fact))for 루프가 팩토리얼을 계산하고, print 문이 최종 결과를 화면에 출력합니다. 실행 결과는 역시 355687428096000입니다.
이 방법은 math.factorial()보다 약간 덜 효율적입니다. math.factorial()은 C 언어 기반으로 구현되어 있어 성능상 이점이 있기 때문입니다. 하지만 외부 라이브러리 없이 순수 파이썬만으로 팩토리얼을 계산하고 싶다면 반복문 방식이 매우 유용합니다.
방법 3: 재귀 함수(Recursive) 활용
재귀 함수를 사용해서도 팩토리얼을 계산할 수 있습니다. 재귀 함수란 특정 문제를 해결하기 위해 자기 자신을 다시 호출하는 함수를 말합니다.
재귀 함수는 수학적 수열을 계산하거나 수학 문제를 풀 때 자주 사용됩니다. 문제의 답을 구하는 명확한 공식이 정의되어 있는 경우가 많기 때문입니다.
파이썬 파일을 열고 다음 함수를 입력해 보세요:
def calculate_factorial(number):
if number == 1:
return number
else:
return number * calculate_factorial(number - 1)이 함수는 재귀적으로 팩토리얼을 계산합니다. 이제 이 함수를 사용하는 메인 프로그램을 작성합니다:
number = 17
fact = calculate_factorial(number)
print("{}의 팩토리얼은 {}입니다.".format(number, fact))number와 fact 두 변수를 선언했습니다. number는 팩토리얼을 구하려는 숫자이고, fact에는 calculate_factorial() 함수의 계산 결과가 할당됩니다. 마지막으로 결과를 콘솔에 출력합니다.
실행 결과: 17의 팩토리얼은 355687428096000입니다.
마무리
팩토리얼은 수학에서 널리 사용되는 개념으로, 1부터 어떤 수까지의 모든 자연수를 곱한 값을 의미합니다.
파이썬에서는 math.factorial(), 반복문, 재귀 함수라는 세 가지 방법으로 팩토리얼을 계산할 수 있습니다. 반복문과 재귀 방식은 별도의 라이브러리 임포트 없이 순수 파이썬('바닐라 파이썬')만으로 구현할 수 있다는 장점이 있습니다.
이제 여러분도 전문가처럼 파이썬으로 팩토리얼을 계산할 준비가 되었습니다!