0534 - Factorial 1

De la Universitas MediaWiki

Cerința

Să se scrie un program care citește numărul natural n și determină valoarea lui n! = 1 * 2 * 3 * ... * n.

Date de intrare

Programul citește de la tastatură numărul n.

Date de ieșire

Programul afișează pe prima linie a ecranului valoarea lui n!.

Restricții și precizări

  • 0 ≤ n ≤ 1000;
  • prin definiție, 0! = 1;

Exemplul 1

Intrare
4
Ieșire
Datele de intrare corespund restricțiilor impuse.
24

Exemplul 2

Intrare
1001
Ieșire
Datele de intrare nu corespund restricțiilor impuse.

Rezolvare

#0534 - Factorial 1
def factorial(n):
    if n == 0:
        return 1  # factorialul lui 0 este 1
    elif n < 0 or n > 1000 or not isinstance(n, int):
        print("Datele de intrare nu corespund restricțiilor impuse.")  # verificarea restricțiilor
        return None
    else:
        result = 1  # inițializăm rezultatul cu 1
        for i in range(1, n+1):  # parcurgem valorile de la 1 la n 
            result *= i  # calculăm produsul
        return result


if __name__ == "__main__":
    n = int(input("Introduceți n: "))
    if factorial(n) is not None:
        print("Datele de intrare corespund restricțiilor impuse.")  # verificăm dacă rezultatul factorialului există
        print(factorial(n))  # afișăm rezultatul