어떤 숫자의 팩토리얼(계승, Factorial)이란 1부터 그 숫자 자신까지의 모든 정수를 곱한 값을 의미합니다. 예를 들어 5의 팩토리얼은 1 × 2 × 3 × 4 × 5 = 120입니다.
주어진 숫자의 팩토리얼을 구하려면 1부터 해당 숫자까지 반복하는 for 루프를 작성하면 됩니다. 이때 주의할 점은 파이썬의 range() 함수가 종료(stop) 값을 범위에 포함하지 않는다는 것입니다. 따라서 종료 값은 입력받은 숫자보다 1만큼 큰 값으로 지정해야 합니다.
범위 안의 각 숫자는 1로 초기화된 변수 f에 누적 곱셈 방식으로 곱해지며, 루프가 끝나면 최종 결과가 저장됩니다.
예제 코드
num=int(input('enter a number'))
f=1
for i in range(1,num+1):
f=f*i
print ('factorial of', num, '=',f)실행 결과
위 코드를 실행한 샘플 결과는 다음과 같습니다.
enter a number5 factorial of 5 = 120
참고: math 모듈 활용하기
반복문을 직접 작성하는 대신 파이썬 표준 라이브러리의 math 모듈에 포함된 factorial() 함수를 사용하면 더욱 간단하게 팩토리얼을 계산할 수 있습니다.
import math
num = int(input('enter a number'))
print('factorial of', num, '=', math.factorial(num))이 방법은 코드가 간결할 뿐만 아니라 내부적으로 최적화되어 있어 큰 숫자도 빠르게 처리할 수 있다는 장점이 있습니다.