4273 - Prod PP: Difference between revisions

From Bitnami MediaWiki
Dragos1234 (talk | contribs)
Pagină nouă: Sursa: [https://www.pbinfo.ro/probleme/4273/prodpp] == Cerinţa == Se dă numărul natural nenul '''n'''. Să se determine produsul primelor '''n''' pătrate perfecte nenule. == Date de intrare == Programul citește de la tastatură numărul '''n'''. == Date de ieșire == Programul afișează pe ecran mesajul Rezultatul este '''S''', unde '''S''' reprezintă valoarea calculată, în caz contrar acest program va afișa "Datele introduse nu corespund cerințelor". == Restric...
 
Dragos1234 (talk | contribs)
 
(22 intermediate revisions by 2 users not shown)
Line 5: Line 5:
Programul citește de la tastatură numărul '''n'''.
Programul citește de la tastatură numărul '''n'''.
== Date de ieșire ==  
== Date de ieșire ==  
Programul afișează pe ecran mesajul Rezultatul este '''S''', unde '''S''' reprezintă valoarea calculată, în caz contrar acest program va afișa "Datele introduse nu corespund cerințelor".
Programul va afișa pe ecranmesajul "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 ==
== Restricţii şi precizări ==
* 0 ⩽ '''n''' ⩽ 10
* 0 < '''n''' ⩽ 10
 
== Exemplul 1 ==
== Exemplul 1 ==
; Intrare
; Intrare
: 4
: 4
; Ieșire
; Ieșire
: Datele corespund cerințelor.
: 576
: 576
<br>
<br>
== Exemplul 2 ==
== Exemplul 2 ==
; Intrare
; Intrare
: 0
: 16
; Ieșire
; Ieșire
: Datele introduse nu corespund cerințelor.
: Datele introduse nu corespund cerințelor.
Line 23: Line 26:
== Exemplul 3 ==
== Exemplul 3 ==
; Intrare
; Intrare
: 42
: 7
; Ieșire
; Ieșire
: Rezultatul este 13244
: Datele corespund cerințelor.
: 25401600
<br>
<br>


== Rezolvare ==  
== Rezolvare ==  
<syntaxhighlight lang="python" line>
<syntaxhighlight lang="python" line>
#0336
#4273
def calcul_suma(n):
def patrate_perfecte(n):
     suma = 0
     patrate = []
     for i in range(1, n+1):
     i = 1
         suma += i*(n-i+1)
    while len(patrate) < n:
     return suma
         patrat = i * i
        patrate.append(patrat)
        i += 1
     return patrate


def validare_n(n):
 
     if n <= 0:
def calculeaza(numbers):
         print("Datele introduse nu corespund cerintelor.")
     product = 1
    for number in numbers:
         product *= number
    return product
 
 
def validare_numar(n):
    if n < 1 or n > 10:
         return False
         return False
     elif n > 100:
     return True
 
 
if __name__ == '__main__':
    n = int(input("Introduceți numărul n: "))
    if not validare_numar(n):
         print("Datele introduse nu corespund cerintelor.")
         print("Datele introduse nu corespund cerintelor.")
        return False
     else:
     else:
         return True
         squares = patrate_perfecte(n)
        product = calculeaza(squares)
        print("Datele introduse corespund cerintelor.")
        print(product)
 
 
</syntaxhighlight>


if __name__ == '__main__':
== Explicatie rezolvare ==
    n = int(input("Introduceți numărul n: "))
Acest program primește de la utilizator un număr întreg n și calculează produsul primelor n pătrate perfecte.


    while not validare_n(n):
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.
        n = int(input("Introduceți un număr valid pentru n: "))


    rezultat = calcul_suma(n)
Funcția calculeaza(numbers) primește o listă de numere și calculează produsul lor folosind un loop for.
    print("Rezultatul este", rezultat)


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


</syntaxhighlight>
Î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.

Latest revision as of 13:01, 9 April 2023

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.