0047 - Sumă Pătrate: Difference between revisions
Dragos1234 (talk | contribs) |
Dragos1234 (talk | contribs) |
||
(7 intermediate revisions by the same user not shown) | |||
Line 11: | Line 11: | ||
* 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 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 " | * 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 == | ||
Line 27: | Line 27: | ||
: 6 | : 6 | ||
; Ieșire | ; Ieșire | ||
: | : Datele introduse corespund cerintelor. | ||
: 91 | |||
<br> | <br> | ||
== Exemplul 3 == | == Exemplul 3 == | ||
; Intrare | ; Intrare | ||
: 7 | : 7 | ||
; Ieșire | ; Ieșire | ||
: | : Datele introduse corespund cerintelor. | ||
: 140 | |||
<br> | <br> | ||
Line 68: | Line 71: | ||
sum = compute_sum(n) | sum = compute_sum(n) | ||
print(" | 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>
- 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.