4273 - Prod PP

From Bitnami MediaWiki

Sursa: [1]

Cerinţa[edit | edit source]

Se dă numărul natural nenul n. Să se determine produsul primelor n pătrate perfecte nenule.

Date de intrare[edit | edit source]

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

Date de ieșire[edit | edit source]

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 pătrate perfecte nenule, în caz contrar programul va afișa pe o linie noua mesajul "Datele introduse nu corespund cerintelor."

Restricţii şi precizări[edit | edit source]

  • 0 < n ⩽ 10

Exemplul 1[edit | edit source]

Intrare
4
Ieșire
Datele corespund cerințelor.
576


Exemplul 2[edit | edit source]

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


Exemplul 3[edit | edit source]

Intrare
7
Ieșire
Datele corespund cerințelor.
25401600


Rezolvare[edit | edit source]

<syntaxhighlight lang="python" line>

  1. 4273

def patrate_perfecte(n):

   patrate = []
   i = 1
   while len(patrate) < n:
       patrat = i * i
       patrate.append(patrat)
       i += 1
   return patrate


def calculeaza(numbers):

   product = 1
   for number in numbers:
       product *= number
   return product


def validare_numar(n):

   if n < 1 or n > 10:
       return False
   return True


if __name__ == '__main__':

   n = int(input("Introduceți numărul n: "))
   if not validare_numar(n):
       print("Datele introduse nu corespund cerintelor.")
   else:
       squares = patrate_perfecte(n)
       product = calculeaza(squares)
       print("Datele introduse corespund cerintelor.")
       print(product)


</syntaxhighlight>

Explicatie rezolvare[edit | edit source]

Acest program primește de la utilizator un număr întreg n și calculează produsul primelor n pătrate perfecte.

Funcția patrate_perfecte(n) primește n ca parametru și întoarce o listă de n pătrate perfecte. Funcția utilizează un loop while pentru a genera pătrate perfecte, adăugându-le într-o listă numită patrate.

Funcția calculeaza(numbers) primește o listă de numere și calculează produsul lor folosind un loop for.

Funcția validare_numar(n) primește n ca parametru și verifică dacă numărul este între 1 și 10.

În funcția principală (if __name__ == '__main__':), programul începe prin citirea inputului de la utilizator și apoi verifică dacă numărul introdus este valid prin intermediul funcției validare_numar(n). Dacă inputul este invalid, programul afișează un mesaj de eroare. Dacă inputul este valid, programul apelează funcția patrate_perfecte(n) și calculeaza(numbers) pentru a calcula produsul pătratelor perfecte. Afișează apoi mesajul "Datele introduse corespund cerințelor" și produsul calculat.