0048 - Sumă Pătrate1: Diferență între versiuni
De la Universitas MediaWiki
Fără descriere a modificării |
Fără descriere a modificării |
||
Linia 7: | Linia 7: | ||
== Date de ieșire == | == Date de ieșire == | ||
Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele de intrare corespund restrictiilor impuse", apoi pe un rând nou va afișa suma cerută. În caz contrar, se va afișa mesajul: "Datele de intrare nu corespund restrictiilor impuse". | |||
== Restricţii şi precizări == | == Restricţii şi precizări == | ||
Linia 47: | Linia 47: | ||
def valideaza_numar(n): | def valideaza_numar(n): | ||
if n <= 0: | if n <= 0: | ||
print(" | print("Datele de intrare nu corespund restrictiilor impuse") | ||
exit() | exit() | ||
if n >= 1000: | if n >= 1000: | ||
print(" | print("Datele de intrare nu corespund restrictiilor impuse") | ||
exit() | exit() | ||
Linia 58: | Linia 58: | ||
valideaza_numar(n) | valideaza_numar(n) | ||
rezultat = suma_patrate_perfecte_pana_la(n) | rezultat = suma_patrate_perfecte_pana_la(n) | ||
print(" | print("Datele de intrare corespund restrictiilor impuse\n", rezultat) | ||
</syntaxhighlight> | </syntaxhighlight> |
Versiunea de la data 26 martie 2023 21:36
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 de intrare corespund restrictiilor impuse", apoi pe un rând nou va afișa suma cerută. În caz contrar, se va afișa mesajul: "Datele de intrare nu corespund restrictiilor impuse".
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
#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 de intrare nu corespund restrictiilor impuse")
exit()
if n >= 1000:
print("Datele de intrare nu corespund restrictiilor impuse")
exit()
if __name__ == '__main__':
n = int(input("Introduceti numarul n: "))
valideaza_numar(n)
rezultat = suma_patrate_perfecte_pana_la(n)
print("Datele de intrare corespund restrictiilor impuse\n", rezultat)