Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Bitnami MediaWiki
Search
Search
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
0048 - Sumă Pătrate1
Page
Discussion
English
Read
Edit
Edit source
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
Edit source
View history
General
What links here
Related changes
Special pages
Page information
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
Sursa: [https://www.pbinfo.ro/probleme/48/sumapatrate1] == 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 lui S, unde S reprezintă suma calculată. În caz contrar, se va afișa mesajul: "Datele introduse nu corespund cerintelor." == Restricţii şi precizări == * 0 < '''n''' < 1000 == Exemplul 1 == ; Intrare : Introduceti numarul n: 20 ; Ieșire : Datele introduse corespund cerintelor. : 30 <br> == Exemplul 2 == ; Intrare : Introduceti numarul n: 1001 ; Ieșire : Datele introduse nu corespund cerintelor. <br> == Rezolvare == <syntaxhighlight lang="python" line> #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 introdsue corespund cerintelor.") exit() if n >= 1000: print("Datele introduse nu corespund cerintelor.") exit() if __name__ == '__main__': n = int(input("Introduceti numarul n: ")) valideaza_numar(n) rezultat = suma_patrate_perfecte_pana_la(n) print("Datele introduse corespund cerintelor.\n", rezultat) </syntaxhighlight> ==Explicatie rezolvare== Acest program calculează suma pătratelor perfecte mai mici sau egale cu un număr dat "n". Funcția "este_patrat_perfect" verifică dacă un număr este pătrat perfect. În cazul în care numărul este pătrat perfect, aceasta va returna valoarea True, altfel va returna valoarea False. Funcția "suma_patrate_perfecte_pana_la" calculează suma tuturor pătratelor perfecte mai mici sau egale cu numărul dat "n". Se utilizează o buclă "for" pentru a itera prin numerele de la 1 până la "n" și se verifică dacă fiecare număr este pătrat perfect. În caz afirmativ, numărul este adăugat la variabila "suma". La final, funcția returnează valoarea "suma". Funcția "valideaza_numar" verifică dacă numărul introdus este mai mare decât 0 și mai mic decât 1000. În cazul în care numărul nu se încadrează în această plajă, programul va afișa un mesaj de eroare și se va încheia prin apelarea funcției "exit()". În secțiunea "if __name__ == '__main__':", programul primește un input de la utilizator pentru a afla numărul "n". Acesta este validat apelând funcția "valideaza_numar". Dacă numărul este valid, programul va apela funcția "suma_patrate_perfecte_pana_la" și va afișa rezultatul. În caz contrar, programul va afișa un mesaj de eroare și se va încheia prin apelarea funcției "exit()".
Summary:
Please note that all contributions to Bitnami MediaWiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Bitnami MediaWiki:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Toggle limited content width