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

De la Universitas MediaWiki
Linia 10: Linia 10:


== Restricţii şi precizări ==
== Restricţii şi precizări ==
* 0 < '''n''' ⩽ 10
* 0 < '''n''' < 1000


== Exemplul 1 ==
== Exemplul 1 ==

Versiunea de la data 25 martie 2023 15:18

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

Programul va afișa pe ecran, mesajul "Datele introduse corespund cerințelor" și pe o linie nouă numărul P , reprezentând produsul primelor n pătrate perfecte nenule, în caz contrar programul va afișa pe o linie noua mesajul "Datele introduse nu corespund cerintelor."

Restricţii şi precizări

  • 0 < n < 1000

Exemplul 1

Intrare
4
Ieșire
Datele corespund cerințelor.
576


Exemplul 2

Intrare
16
Ieșire
Datele introduse nu corespund cerințelor.


Exemplul 3

Intrare
7
Ieșire
Datele corespund cerințelor.
25401600


Rezolvare

#0048
import math

def este_patrat_perfect(numar):
    rad = int(math.sqrt(numar))
    return rad * rad == 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("Numarul trebuie sa fie mai mare decat 0")
        exit()
    if n >= 1000:
        print("Numarul trebuie sa fie mai mic decat 1000")
        exit()


if __name__ == '__main__':
    n = int(input("Introduceti numarul n: "))
    valideaza_numar(n)
    rezultat = suma_patrate_perfecte_pana_la(n)
    print("Rezultatul este", rezultat)