0048 - Sumă Pătrate1: Difference between revisions
Dragos1234 (talk | contribs) Pagină nouă: Sursa: [https://www.pbinfo.ro/probleme/48/sumapatrate1] == Cerinţa == Se dă numărul natural nenul '''n'''. Să se determine produsul primelor '''n''' pătrate perfecte nenule. == 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... |
Dragos1234 (talk | contribs) |
||
Line 1: | Line 1: | ||
Sursa: [https://www.pbinfo.ro/probleme/48/sumapatrate1] | Sursa: [https://www.pbinfo.ro/probleme/48/sumapatrate1] | ||
== Cerinţa == | == 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 == | == Date de intrare == | ||
Programul citește de la tastatură numărul '''n'''. | Programul citește de la tastatură numărul '''n'''. |
Revision as of 15:17, 25 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
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 ⩽ 10
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
<syntaxhighlight lang="python" line>
- 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)
</syntaxhighlight>