0048 - Sumă Pătrate1: Difference between revisions

From Bitnami MediaWiki
No edit summary
No edit summary
Line 7: Line 7:


== Date de ieșire ==  
== Date de ieșire ==  
Acest program calculează suma pătratelor perfecte până la un număr dat de utilizator și afișează rezultatul. Datele de ieșire ale programului constau într-un singur număr, reprezentând suma pătratelor perfecte până la numărul introdus de utilizator. Dacă utilizatorul introduce un număr invalid (mai mic sau egal cu 0 sau mai mare sau egal cu 1000), programul va afișa un mesaj corespunzător și se va opri.
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 ==
Line 47: Line 47:
def valideaza_numar(n):
def valideaza_numar(n):
     if n <= 0:
     if n <= 0:
         print("Numarul trebuie sa fie mai mare decat 0")
         print("Datele de intrare nu corespund restrictiilor impuse")
         exit()
         exit()
     if n >= 1000:
     if n >= 1000:
         print("Numarul trebuie sa fie mai mic decat 1000")
         print("Datele de intrare nu corespund restrictiilor impuse")
         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("Rezultatul este", rezultat)
     print("Datele de intrare corespund restrictiilor impuse\n", rezultat)




</syntaxhighlight>
</syntaxhighlight>

Revision as of 21:36, 26 March 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 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

<syntaxhighlight lang="python" line>

  1. 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)


</syntaxhighlight>