from os import system
system(" ")
def silnia_rekurencyjna(podanaLiczba):
if podanaLiczba > 1:
return podanaLiczba * silnia_rekurencyjna(podanaLiczba-1)
else:
return 1
definicja = """\n\n\033[1;30;40mDEFINICJA SILNI\n\n
Silnią liczby 5 jest pięć kolejno pomnożonych przez siebie liczb naturalnych zaczynając od 1,
tj. 1*2*3*4*5 = 120.
Filozoficznie: Silnia oznacza ilość permutacji w zbiorze n-elementowym (na ile sposobów można przedstawić te elementy)."""
print(definicja)
podanaLiczba = -1
while not podanaLiczba >= 0:
try:
podanaLiczba = int(input('\n\nPodaj liczbę naturalną: '))
if podanaLiczba >= 1:
print('\n\nWynik: \033[1;32;40m', podanaLiczba, '! = ',silnia_rekurencyjna(podanaLiczba), '\033[0m\n\n', sep='x')
elif podanaLiczba == 0:
print('\n\n\033[1;36;40mMatematyka formalna przyjmuje na zasadzie umowy,że 0! = 1.\nZ filozoficznego punktu widzenia, nie ma to jednak sensu.\033[0m\n\n')
else:
print('\n\n\033[1;37;41m BŁĄD: \033[0m')
print('\033[1;31;40mMusisz podać liczbę naturalną (czyli liczbę całkowitą dodatnią, większą od zera)!\033[0m')
except ValueError:
print('\n\n\033[1;37;41m BŁĄD: \033[0m')
print('\033[1;31;40m1. Wprowadzone wartości albo nie są liczbami naturalnymi...\n2. Albo w ogóle nie wprowadzono żadnych wartości.\n\nSpróbuj jeszcze raz.\033[0m\n')
input('\n\n\033[1;30;40mNaciśnij ENTER, aby zakończyć...\033[0m\n')
Pobierz program