0048 - Sumă Pătrate1: Diferență între versiuni

De la Universitas MediaWiki
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 programul afișează "Rezultatul este S", unde S reprezintă suma calculată. În caz contrar, se va afișa mesajul: "Datele de intrare nu corespund restrictiilor impuse".
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 ==
== Restricţii şi precizări ==

Versiunea de la data 26 aprilie 2023 15:49

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

#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)