0047 - Sumă Pătrate: Difference between revisions
Dragos1234 (talk | contribs) |
Dragos1234 (talk | contribs) No edit summary |
||
Line 71: | Line 71: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Explicatie rezolvare == |
Revision as of 12:37, 17 April 2023
Sursa: [1]
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, iar apoi n numere naturale, separate prin spații.
Date de ieșire
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 "Rezultatul este" urmată de valoarea calculată.
Restricţii şi precizări
- 1 < n < 1000
Exemplul 1
- Intrare
- 0
- Ieșire
- Datele introduse nu corespund cerințelor.
Exemplul 2
- Intrare
- 6
- Ieșire
- Rezultatul este 91
Exemplul 3
- Intrare
- 7
- Ieșire
- Rezultatul este 140
Rezolvare
<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("Rezultatul este", sum)
</syntaxhighlight>