0047 - Sumă Pătrate: Difference between revisions

From Bitnami MediaWiki
Dragos1234 (talk | contribs)
Pagină nouă: Sursa: [https://www.pbinfo.ro/probleme/47/sumapatrate] == Cerinţa == Să se scrie un program care citește numărul natural '''n''' și determină suma 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 prima linie a ecranului mesajul Rezultatul este '''S''', unde '''S''' reprezintă suma calculată. == Restricţii şi precizări == * 0 < '''n''' < 1000 =...
 
Dragos1234 (talk | contribs)
 
(14 intermediate revisions by the same user not shown)
Line 2: Line 2:
== Cerinţa ==
== Cerinţa ==
Să se scrie un program care citește numărul natural '''n''' și determină suma primelor '''n''' pătrate perfecte nenule.
Să se scrie un program care citește numărul natural '''n''' și determină suma primelor '''n''' pătrate perfecte nenule.
== Date de intrare ==
== Date de intrare ==
Programul citește de la tastatură numărul '''n'''.
Programul citește de la tastatură numărul '''n''', iar apoi '''n''' numere naturale, separate prin spații.
 
== Date de ieșire ==  
== Date de ieșire ==  
Programul afișează pe prima linie a ecranului mesajul Rezultatul este '''S''', unde '''S''' reprezintă suma calculată.
Acest program calculează suma primelor n numere întregi care sunt pătrate perfecte. Datele de ieșire pentru acest program sunt:
 
* Dacă datele de intrare nu corespund cerințelor (numărul introdus este mai mic sau egal cu 0 sau mai mare sau egal cu 1000), programul va afișa "Datele introduse nu corespund cerințelor."
 
* Dacă datele de intrare sunt corecte, programul va calcula suma primelor n numere întregi care sunt pătrate perfecte și va afișa rezultatul cu ajutorul frazei "Datele introduse corespund cerintelor" urmată de valoarea calculată.
 
== Restricţii şi precizări ==
== Restricţii şi precizări ==
* 0 &lt; '''n''' &lt; 1000
* 1 &lt; '''n''' &lt; 1000


== Exemplul 1 ==
== Exemplul 1 ==
Line 20: Line 27:
: 6
: 6
; Ieșire
; Ieșire
: Rezultatul este 91
: Datele introduse corespund cerintelor.
: 91
<br>
<br>
== Exemplul 3 ==
== Exemplul 3 ==
; Intrare
; Intrare
: 7
: 7
; Ieșire
; Ieșire
: Rezultatul este 140
: Datele introduse corespund cerintelor.
: 140
<br>
<br>


Line 61: Line 71:


     sum = compute_sum(n)
     sum = compute_sum(n)
     print("Rezultatul este", sum)
     print(f"Datele introduse corespund cerintelor.\n{sum}")


</syntaxhighlight>
</syntaxhighlight>
== Explicatie rezolvare ==
Acest program calculează suma primelor n numere întregi care sunt pătrate perfecte, unde n este introdus de utilizator.
Funcția '''validate_input(n)''' verifică dacă n este un număr întreg pozitiv mai mic decât 1000, returnând False dacă nu este îndeplinită această condiție și True în caz contrar.
Funcția '''compute_sum(n)''' calculează suma primelor n numere întregi care sunt pătrate perfecte prin utilizarea unui loop while care se execută până când s-au găsit n numere întregi pătrate perfecte. În interiorul loop-ului, fiecare număr întreg este verificat pentru a vedea dacă este pătrat perfect. Dacă este, numărul este adăugat la suma totală și numărul de numere pătrate perfecte găsite până în prezent este incrementat.
În funcția principală '''(if __name__ == '__main__':)''', utilizatorul este întâi rugat să introducă un număr întreg pozitiv, n, și acesta este validat cu ajutorul funcției '''validate_input(n)'''. Dacă numărul nu este valid, utilizatorul este rugat să introducă un alt număr până când se introduce un număr valid. Dacă numărul este valid, '''funcția compute_sum(n)''' este apelată și afișează suma primelor n numere întregi care sunt pătrate perfecte.

Latest revision as of 22:57, 11 May 2023

Sursa: [1]

Cerinţa[edit | edit source]

Să se scrie un program care citește numărul natural n și determină suma primelor n pătrate perfecte nenule.

Date de intrare[edit | edit source]

Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spații.

Date de ieșire[edit | edit source]

Acest program calculează suma primelor n numere întregi care sunt pătrate perfecte. Datele de ieșire pentru acest program sunt:

  • Dacă datele de intrare nu corespund cerințelor (numărul introdus este mai mic sau egal cu 0 sau mai mare sau egal cu 1000), programul va afișa "Datele introduse nu corespund cerințelor."
  • Dacă datele de intrare sunt corecte, programul va calcula suma primelor n numere întregi care sunt pătrate perfecte și va afișa rezultatul cu ajutorul frazei "Datele introduse corespund cerintelor" urmată de valoarea calculată.

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

  • 1 < n < 1000

Exemplul 1[edit | edit source]

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


Exemplul 2[edit | edit source]

Intrare
6
Ieșire
Datele introduse corespund cerintelor.
91


Exemplul 3[edit | edit source]

Intrare
7
Ieșire
Datele introduse corespund cerintelor.
140


Rezolvare[edit | edit source]

<syntaxhighlight lang="python" line>

  1. 0047

import math


def validate_input(n):

   if n <= 0 or n >= 1000:
       return False
   else:
       return True


def compute_sum(n):

   sum = 0
   count = 0
   num = 1
   while count < n:
       if math.sqrt(num) % 1 == 0:  # Verifică dacă numărul este pătrat perfect
           sum += num
           count += 1
       num += 1
   return sum


if __name__ == '__main__':

   n = int(input("Introduceti n: "))
   while not validate_input(n):
       print("Datele introduse nu corespund cerintelor.")
       n = int(input("Introduceti n: "))
   sum = compute_sum(n)
   print(f"Datele introduse corespund cerintelor.\n{sum}")

</syntaxhighlight>

Explicatie rezolvare[edit | edit source]

Acest program calculează suma primelor n numere întregi care sunt pătrate perfecte, unde n este introdus de utilizator.

Funcția validate_input(n) verifică dacă n este un număr întreg pozitiv mai mic decât 1000, returnând False dacă nu este îndeplinită această condiție și True în caz contrar.

Funcția compute_sum(n) calculează suma primelor n numere întregi care sunt pătrate perfecte prin utilizarea unui loop while care se execută până când s-au găsit n numere întregi pătrate perfecte. În interiorul loop-ului, fiecare număr întreg este verificat pentru a vedea dacă este pătrat perfect. Dacă este, numărul este adăugat la suma totală și numărul de numere pătrate perfecte găsite până în prezent este incrementat.

În funcția principală (if __name__ == '__main__':), utilizatorul este întâi rugat să introducă un număr întreg pozitiv, n, și acesta este validat cu ajutorul funcției validate_input(n). Dacă numărul nu este valid, utilizatorul este rugat să introducă un alt număr până când se introduce un număr valid. Dacă numărul este valid, funcția compute_sum(n) este apelată și afișează suma primelor n numere întregi care sunt pătrate perfecte.