Python Program pentru a găsi factorii unui număr

⚡ Rezumat inteligent

Factorialul unui număr din Python este produsul fiecărui număr întreg pozitiv până la acel număr. Python o calculează cu o buclă for, o verificare if-else, recursiune sau funcția math.factorial() încorporată.

  • 🔘 Pentru bucla: Iterați de la 1 la n, înmulțind un produs continuu pentru a construi factorialul.
  • ☑️ Verificare If-else: Atenție la intrările negative care returnează o eroare, deoarece factorialii au nevoie de numere întregi nenegative.
  • ✅ Recursie: O funcție se apelează singură cu n-1 până când atinge cazul de bază 0.
  • 🧪 math.factorial(): Importați date matematice și apelați o funcție încorporată pentru un rezultat rapid și testat.
  • 🛠️ Cazuri limită: Factorialul lui 0 este egal cu 1 și Python gestionează nativ rezultate foarte mari.
  • 🤖 Inteligența artificială și știința datelor: Probabilitatea, combinatoria și bibliotecile precum SciPy utilizează factoriali pe tablouri.

Python Program pentru a găsi factorii unui număr

Secțiunile de mai jos prezintă patru modalități de a calcula un factorial în Python — o buclă for, o versiune if-else, recursivitate și math.factorial() — plus algoritmul și aplicațiile subiacente.

Factorial al unui număr folosind bucla for

Să luăm exemplul Python cod care primește un număr întreg pozitiv ca intrare pentru a determina factorialul numerelor întregi pozitive. În codul următor, bucla începe cu unu, apoi se înmulțește cu fiecare număr care precede numărul real al cărui factorial trebuie determinat.

Următoarele Python codul ilustrează funcția factorială folosind o buclă.

Python cod:

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)

ieșire:

Input a number
4
The factorial of the number is 24

Cele de mai sus Python Programul acceptă doar numere pozitive și nu are o verificare a numerelor negative. În acest program, factorul este 1 când j este egal cu 1. Când j este 2, factorul este înmulțit cu 2 și va efectua acțiunea până când j ajunge la 4 pentru a ajunge la 24.

Factorial al unui număr folosind instrucțiunea IF...else

Următoarele Python Codul ilustrează funcția factorială folosind o funcție. Spre deosebire de versiunea cu buclă, acest program verifică și numerele negative înainte de a calcula factorialul.

În anteriorul Python În cod, verificarea numerelor negative nu a fost aplicată, ceea ce face ca funcția factorială să fie incompletă și predispusă la afișarea unui mesaj de eroare dacă se introduc numere negative ca intrare.

În codul dat, bucla începe cu unu și se înmulțește cu fiecare număr precedent, iar funcția validează și datele introduse pentru numere negative.

Python cod:

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))

ieșire:

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

Aceasta Python Programul acceptă numere pozitive și adaugă o verificare pentru numere negative folosind instrucțiunile if și else, returnând corect 24 pentru o intrare de 4.

Factorial al unui număr folosind recursiunea

Următoarele Python Codul ilustrează funcția factorială folosind recursivitatea. În acest exemplu, o funcție recursivă care primește un număr întreg pozitiv ca intrare determină numărul factorial.

Python cod:

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))

ieșire:

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

Recursiunea poate fi explicată ca un concept în care funcția invocată în Python Modulul se poate apela singur iar și iar. Rulează până când Python Condiția prezentă în modul este îndeplinită, în care funcția invocată este transmisă cu o valoare.

În cele de mai sus Python În program, funcția `def factorial` se auto-apelează recursiv până când numărul ajunge la zero. Odată ce numărul ajunge la zero, îl inițializează ca 1, încheind recursivitatea.

Factorialul unui număr folosind math.factorial()

Următoarele Python codul ilustrează funcția factorială folosind math.factorial(), care poate fi utilizat prin importul modulului matematic.

Această funcție nu acceptă numere întregi negative și generează o eroare de valoare atunci când sunt furnizate numere cu număr mobil.

Python cod:

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))

ieșire:

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

Algoritm pentru programul factorial în Python

Să luăm un exemplu care ilustrează conceptul de factorial.

Pentru determinarea factorialului 5, urmați acești pași:

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

Aici, 5! este exprimat ca 120.

Următoarea diagramă ajută la înțelegerea algoritmului de calcul factorial și, în acest caz, să luăm un exemplu de factorial 4!

Algoritm pentru programul factorial

Algoritm cum exemplu pictural de factorial 4!

Aplicarea Factorialului în Python

Factorialul unui număr are un nivel larg de aplicații în matematică. Iată aplicații importante ale Python:

  • Python ajută la calcul, urmat de factorial de imprimare în termeni mai rapidi și mai eficienți decât alte limbaje de programare disponibile.
  • Python codul este ușor de înțeles și poate fi replicat pe diferite platforme și factorial Python programul poate fi încorporat în mai multe sarcini de construire a modelelor matematice.

Întrebări frecvente

Factorialul unui număr întreg nenegativ n, scris n!, este produsul tuturor numerelor întregi pozitive de la 1 la n. De exemplu, 5! este egal cu 5 × 4 × 3 × 2 × 1 = 120.

Prin definiție, factorialul lui 0 este 1. Fiecare metodă — buclă, recursiune sau math.factorial() — returnează 1 pentru intrarea 0, iar acest caz de bază oprește și apelurile recursive.

Da. Python Numerele întregi au o precizie nelimitată, așa că math.factorial(100) returnează un rezultat de 158 de cifre fără depășire. Doar memoria și timpul de execuție cresc odată cu dimensiunea intrării.

A pentru bucla este de obicei preferat. Ambele rulează în timp O(n), dar bucla folosește memorie constantă, în timp ce recursivitatea adaugă o stivă de apeluri care poate atinge Pythonlimita de recurență a lui.

Fiecare metodă standard necesită n−1 înmulțiri, deci complexitatea temporală este O(n). Bucla iterativă păstrează spațiul la O(1), în timp ce recursivitatea folosește spațiul O(n) pentru stiva de apeluri.

Recursivitatea profundă poate depăși PythonLimita implicită a lui este aproape de 1000 de apeluri. Folosește o buclă for iterativă sau math.factorial() pentru intrări mari sau ridică plafonul cu sys.setrecursionlimit().

Da. Factorialii apar în combinatorică și distribuții de probabilitate precum Poisson și binomială, care stau la baza multor modele de învățare automată. Bibliotecile de știință a datelor oferă, de asemenea, instrumente factoriale vectorizate pentru tablouri.

Da. GitHub Copilot și asistenți AI similari generează versiuni de tip buclă, recursivă și math.factorial() dintr-un prompt scurt. Revizuiți întotdeauna sugestia pentru garda pentru numere negative și cazul de bază 0!.

Rezumați această postare cu: