Python Program do znajdowania silni liczby

Silnia liczby przy użyciu pętli for

Weźmy przykład kodu Pythona, który przyjmuje dodatnią liczbę całkowitą jako dane wejściowe, aby określić silnię dodatnich liczb całkowitych. W poniższym kodzie pętla zaczyna się od jedynki, a następnie mnoży przez każdą liczbę poprzedzającą rzeczywistą liczbę, której silnia ma zostać określona.

Poniższy kod Pythona ilustruje funkcję silni za pomocą pętli.

Python kod:

print ("Input a number")
factorialIP = int (input ())
ffactor23 = 1
for j in range (1, factorialIP+1):
   ffactor23 = ffactor23 * j
print ("The factorial of the number is “, ffactor23)

Wyjście:

Input a number
4
The factorial of the number is 24

Powyższy program python przyjmuje tylko dodatnie liczby wejściowe i nie ma w nim sprawdzania liczb ujemnych. W tym programie współczynnik wynosi 1, gdy j jest równe 1. Gdy j wynosi 2, współczynnik jest mnożony przez 2 i będzie wykonywał działanie, dopóki j nie osiągnie 4, aby osiągnąć 24.

Silnia liczby przy użyciu instrukcji IF…else

Poniższy kod Pythona ilustruje funkcję silni za pomocą funkcji. Zajmijmy się następującym kodem Pythona, który przyjmuje dodatnie liczby całkowite jako dane wejściowe, aby określić silnię dodatnich liczb całkowitych.

W poprzednim kodzie Pythona nie stosowano sprawdzania liczb ujemnych, przez co funkcja silni była niekompletna i podatna na wyświetlenie komunikatu o błędzie, jeśli jako dane wejściowe podano liczby ujemne.

W podanym kodzie pętla zaczyna się od jeden, a następnie mnoży przez każdą liczbę poprzedzającą liczbę, której silnia ma zostać ustalona, ​​a także sprawdza, czy występują liczby ujemne.

Python kod:

print("Enter a number for the purpose of determining factorial")
factorialIP = int(input())
def factorial(factorialIP):
   if factorialIP < 0:
     print ('Factorial does not exist')
     factor=0
     return factor
   elif factorialIP == 0:
     factor=1
     return factor
     print(factor)
   else:
     factor = 1
     for j in range (1, factorialIP+1):
       factor = factor * j
     return factor
  print ("The factorial of the number is ", factorial(factorialIP))

Wyjście:

1) Enter a number to determine factorial
   -4
   Factorial does not exist
   The factorial of the number is 0

2) Enter a number to determine factorial
   4
   Factorial does not exist
   The factorial of the number is 24

Powyżej program w Pythonie do znajdowania silni liczby przyjmuje tylko dodatnie liczby wejściowe i sprawdza liczby ujemne za pomocą instrukcji if i else języka python. W tym programie współczynnik wynosi 1, gdy j jest równe 1. Gdy j wynosi 2, współczynnik jest mnożony przez 2 i będzie wykonywał działanie, dopóki j nie osiągnie 4, aby osiągnąć 24.

Silnia liczby przy użyciu rekurencji

Poniższy kod Pythona ilustruje funkcję silni za pomocą rekurencji. Zajmijmy się następującym kodem Pythona, który przyjmuje dodatnie liczby całkowite jako dane wejściowe, aby określić silnię dodatnich liczb całkowitych. W tym przykładzie funkcja rekurencyjna określa liczbę silni.

Python kod:

print("Enter a number for the purpose of determining factorial")
def factorial(num2):
  if num2 < 0:
    return 'Factorial does not exist'
  elif num2 == 0:
     return 1
  else:
     return num2 * factorial(num2-1)
number1 = int(input())
print("The factorial of the number is",factorial(number1))

Wyjście: -

Enter a number for the purpose of determining factorial
4
The factorial of the number is 24

Rekursję można wyjaśnić jako koncepcję, w której funkcja wywoływana w module Pythona może wywoływać się wielokrotnie. Działa do momentu spełnienia warunku Pythona obecnego w module Pythona, podczas którego wywoływana funkcja jest przekazywana z wartością.

W powyższym programie Pythona funkcja number def silnia wywołuje się rekurencyjnie, dopóki liczba nie osiągnie zera. Gdy liczba osiągnie zero, inicjuje ją jako 1, kończąc rekurencję.

Silnia liczby za pomocą matematyki. silnia()

Poniższy kod w języku Python ilustruje funkcję silni za pomocą metody math.factorial(), którą można wykorzystać po zaimportowaniu modułu math.

Ta funkcja nie akceptuje ujemnych liczb całkowitych i generuje komunikat o błędzie value error, gdy podane są liczby float. Zajmijmy się następującym kodem Pythona, który przyjmuje dodatnie liczby całkowite jako dane wejściowe, aby określić silnię dodatnich liczb całkowitych.

Python kod:

print("Enter a number for computing factorial")
import math
number1 = int(input())
print("The factorial is as computed comes out to be ")
print(math.factorial(number1))

Wyjście: -

Enter a number for computing factorial
4
The factorial, as computed, comes out to be 24

Algorytm programu silniowego w Python

Weźmy przykład ilustrujący koncepcję silni.

Aby wyznaczyć silnię 5, wykonaj następujące kroki: –

5! = 5 x (5-1) x (5-2) x (5-3) x (5-4)
5! =120

Tutaj, 5! wyraża się jako 120.

Poniższy diagram pomaga zrozumieć algorytm obliczania silni. W tym przypadku weźmiemy przykład silni 4!

Algorytm programu silniowego
Algorytm z obrazowym przykładem silni 4!

Zastosowanie silni w Python

Silnia liczby ma szerokie zastosowanie w matematyce. Oto ważne zastosowania Python:

  • Python pomaga w obliczeniach, a następnie drukuje silnię w sposób szybszy i wydajniejszy niż inne dostępne języki programowania.
  • Kod Pythona jest łatwo zrozumiały i można go replikować na różnych platformach, a silniowy program Pythona można włączyć do kilku zadań związanych z budowaniem modelu matematycznego.

Podsumowanie

  • Silnię liczby można opisać jako iloczyn lub mnożenie wszystkich dodatnich liczb całkowitych równych lub mniejszych od liczby, dla której wyznaczany jest iloczyn lub silnia.
  • Silnię liczby w Pythonie można wykonać na trzy sposoby.
    1. Obliczenia silni przy użyciu pętli For
    2. Obliczenia silni z wykorzystaniem rekurencji.
    3. Użycie funkcji zdefiniowanej przez użytkownika
  • Silnię liczby wyznacza się dla nieujemnej liczby całkowitej, a wyniki są zawsze dodatnimi liczbami całkowitymi.
  • Wyjątkiem od reguły silnia zerowa jest równa 1.
  • Silnia liczby ma szerokie zastosowanie w matematyce.

Poznaj nasz kolejny samouczek na temat Zamień dwie liczby bez użycia trzeciej zmiennej