0048 - Sumă Pătrate1: Difference between revisions
Dragos1234 (talk | contribs) |
Dragos1234 (talk | contribs) |
||
Line 47: | Line 47: | ||
def valideaza_numar(n): | def valideaza_numar(n): | ||
if n <= 0: | if n <= 0: | ||
print("Datele | print("Datele introdsue corespund cerintelor.") | ||
exit() | exit() | ||
if n >= 1000: | if n >= 1000: | ||
print("Datele | print("Datele introduse nu corespund cerintelor.") | ||
exit() | exit() | ||
Line 58: | Line 58: | ||
valideaza_numar(n) | valideaza_numar(n) | ||
rezultat = suma_patrate_perfecte_pana_la(n) | rezultat = suma_patrate_perfecte_pana_la(n) | ||
print("Datele | print("Datele introduse corespund cerintelor.\n", rezultat) | ||
</syntaxhighlight> | </syntaxhighlight> |
Revision as of 15:51, 26 April 2023
Sursa: [1]
Cerinţa
Să se scrie un program care citește numărul natural n și determină suma pătratelor perfecte mai mici sau egale cu n.
Date de intrare
Programul citește de la tastatură numărul n.
Date de ieșire
Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele introduse corespund cerintelor", apoi pe un rând nou programul afișează "Rezultatul este S", unde S reprezintă suma calculată. În caz contrar, se va afișa mesajul: "Datele de intrare nu corespund cerintelor."
Restricţii şi precizări
- 0 < n < 1000
Exemplul 1
- Intrare
- Introduceti numarul n: 20
- Ieșire
- Rezultatul este 30
Exemplul 2
- Intrare
- Introduceti numarul n: 1001
- Ieșire
- Numarul trebuie sa fie mai mic decat 1000
Rezolvare
<syntaxhighlight lang="python" line>
- 0048
import math
def este_patrat_perfect(numar):
radadica = int(math.sqrt(numar)) return radadica * radadica == numar
def suma_patrate_perfecte_pana_la(n):
suma = 0 for i in range(1, n+1): if este_patrat_perfect(i): suma += i return suma
def valideaza_numar(n):
if n <= 0: print("Datele introdsue corespund cerintelor.") exit() if n >= 1000: print("Datele introduse nu corespund cerintelor.") exit()
if __name__ == '__main__':
n = int(input("Introduceti numarul n: ")) valideaza_numar(n) rezultat = suma_patrate_perfecte_pana_la(n) print("Datele introduse corespund cerintelor.\n", rezultat)
</syntaxhighlight>