3976 - Prod Impare

De la Universitas MediaWiki
Versiunea pentru tipărire nu mai este suportată și poate avea erori de randare. Vă rugăm să vă actualizați bookmarkurile browserului și să folosiți funcția implicită de tipărire a browserului.

Sursa: [1]

Cerinţa

Se dă numărul natural nenul n. Să se determine produsul primelor n numere impare.

Date de intrare

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

Date de iesire

Programul va afișa pe ecran, mesajul "Datele introduse corespund cerințelor" și pe o linie nouă numărul P reprezentând produsul primelor n numere impare, în caz contrar programul va afișa pe o linie nouă "Datele introduse nu corespund cerințelor".

Restricţii şi precizări

  • 1 ⩽ n ⩽ 15

Exemplu

Exemplul 1

Intrare
4
Ieșire
Datele introduse corespund cerințelor.
105

Exemplul 2

Intrare
0
Ieșire
Datele introduse nu corespund cerințelor.

Exemplul 3

Intrare
7
Ieșire
Datele introduse corespund cerințelor.
135135

Rezolvare

#3976
def validare_numar_intreg_pozitiv(mesaj):
    while True:
        try:
            numar = int(input(mesaj))
            if numar <= 0:
                print("Datele introduse nu corespund cerintelor.")

            elif numar > 15:
                print("Datele introduse nu corespund cerintelor.")

            else:
                return numar

        except ValueError:
            print("Introduceti un numar intreg pozitiv.")


def produs_primelor_n_numere_impare(n):
    produs = 1
    for i in range(1, 2*n, 2):
        produs *= i
    return produs


if __name__ == '__main__':
    n = validare_numar_intreg_pozitiv("Introduceti un numar natural nenul: ")
    produs = produs_primelor_n_numere_impare(n)
    print("Datele introduse corespund cerintelor.\n",produs)

Explicatie rezolvare

Acest program calculează produsul primelor n numere impare, unde n este un număr natural dat de utilizator. Funcția "validare_numar_intreg_pozitiv(mesaj)" primește un argument "mesaj" care este afișat pentru a îndruma utilizatorul să introducă un număr natural nenul. În cadrul acestei funcții, programul verifică dacă numărul introdus este mai mic sau egal cu 0 sau mai mare decât 15, afișând un mesaj de eroare în caz contrar. Dacă numărul este un număr natural între 1 și 15, acesta este returnat și funcția se termină. În caz contrar, utilizatorul este rugat să introducă un alt număr.

Funcția "produs_primelor_n_numere_impare(n)" primește un argument "n" și calculează produsul primelor n numere impare. Produsul este inițializat cu 1 și apoi, folosind un ciclu for, se calculează produsul valorilor impare din intervalul [1, 2n], adică valorile 1, 3, 5, ..., 2n-1.

În programul principal, utilizatorul este întâi rugat să introducă un număr natural nenul, care este verificat pentru a se asigura că corespunde cerințelor prin intermediul funcției "validare_numar_intreg_pozitiv(mesaj)". Dacă numărul este valid, programul calculează produsul și îl afișează împreună cu un mesaj de confirmare că datele introduse sunt valabile.