Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

파이썬의 factorial()

<시간/>

숫자의 계승을 찾는 것은 파이썬과 관련된 데이터 분석 및 기타 수학적 분석에서 빈번한 요구 사항입니다. 계승은 항상 1에서 시작하여 주어진 숫자까지 모든 정수를 곱하여 양의 정수에 대해 발견됩니다. 아래와 같이 3가지 방법으로 찾을 수 있습니다.

For 루프 사용

for 루프를 사용하여 지정된 숫자까지 숫자 1을 반복하고 각 단계에서 계속 곱할 수 있습니다. 아래 프로그램에서 우리는 루프에서 사용하기 전에 숫자를 입력하고 입력을 정수로 변환하도록 사용자에게 요청합니다. 이렇게 하면 계산에서 양의 정수를 얻을 수 있습니다.

예시

n = input("Enter a number: ")
factorial = 1
if int(n) >= 1:
for i in range (1,int(n)+1):
   factorial = factorial * i
print("Factorail of ",n , " is : ",factorial)

출력

위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -

Enter a number: 5
Factorail of 5 is : 120

재귀 사용

예시

num = input("Enter a number: ")
def recur_factorial(n):
if n == 1:
   return n
elif n < 1:
   return ("NA")
else:
   return n*recur_factorial(n-1)
print (recur_factorial(int(num)))

출력

위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -

#Run1:
Enter a number: 5
120
#Run2:
Enter a number: -2
NA

math.factorial() 사용

이 경우 수학 모듈에서 사용할 수 있는 계승 함수를 직접 사용할 수 있습니다. 계승 기능을 위한 코드를 작성할 필요가 없으며 math.factorial()을 직접 사용합니다. 음수 및 분수 시나리오도 처리합니다.

예시

import math
num = input("Enter a number: ")
print("The factorial of ", num, " is : ")
print(math.factorial(int(num)))

출력

위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -

#Run1:
Enter a number: 5
The factorial of 5 is :
120
#Run 2:
Enter a number: 3.6
Traceback (most recent call last):
The factorial of 3.6 is :
File "C:/Users....py", line 5, in
print(math.factorial(int(num)))
ValueError: invalid literal for int() with base 10: '3.6'