0017 - Suma divizorilor 2: Difference between revisions
Cuceu Andrei (talk | contribs) Pagină nouă: ==Cerință== Să se scrie o funcție Python care să determine suma divizorilor unui număr natural transmis ca parametru. Funcția întoarce rezultatul prin intermediul unui parametru de ieşire. ==Restricții de precizări== :Numele funcției va fi '''sum_div''' :Funcția va avea doi parametri, reprezentând numărul pentru care se calculează suma :divizorilor,respectiv valoarea calculată :Valorile celor doi parametri vor fi numere naturale nenule mai mici decât '''... |
Vardai Erwin (talk | contribs) No edit summary |
||
Line 1: | Line 1: | ||
==Cerință== | ==Cerință== | ||
Să se scrie o funcție Python care să determine suma divizorilor unui număr natural transmis ca parametru. Funcția întoarce rezultatul prin intermediul unui parametru de ieşire. | Să se scrie o funcție Python care să determine suma divizorilor unui număr natural transmis ca parametru. Funcția întoarce rezultatul prin intermediul unui parametru de ieşire. | ||
==Restricții de precizări== | ==Restricții de precizări== | ||
*Numele funcției va fi '''sum_div''' | |||
*Funcția va avea doi parametri, reprezentând numărul pentru care se calculează suma | |||
*divizorilor,respectiv valoarea calculată | |||
*Valorile celor doi parametri vor fi numere naturale nenule mai mici decât '''2000000000''' | |||
==Important== | ==Important== | ||
Soluţia propusă va conţine doar definiţia funcţiei cerute. Prezenţa în soluţie a altor instrucţiuni poate duce erori de compilare sau de execuţie care vor avea ca efect depunctarea soluţiei. | Soluţia propusă va conţine doar definiţia funcţiei cerute. Prezenţa în soluţie a altor instrucţiuni poate duce erori de compilare sau de execuţie care vor avea ca efect depunctarea soluţiei. | ||
==Rezolvare== | ==Rezolvare== | ||
===Rezolvare ver. 1=== | ===Rezolvare ver. 1=== | ||
<syntaxhighlight lang="python" line="1" start="1"> | <syntaxhighlight lang="python" line="1" start="1"> | ||
def validare(n, result): | |||
return 0 < int(n), int(result) < 2000000000 | |||
def sum_div(n, result): | def sum_div(n, result): | ||
result = 0 | result = 0 | ||
for i in range(1, n+1): | for i in range(1, n + 1): | ||
if n % i == 0: | if n % i == 0: | ||
result += i | result += i | ||
return result | return result | ||
if __name__ == "__main__": | if __name__ == "__main__": | ||
n = | n = input("Introduceți un număr: ") | ||
result = 0 | result = 0 | ||
print(f"Suma divizorilor lui {n} este: {sum_div(n, result)}") | if validare(n, result): | ||
n = int(n) | |||
print("Datele introduse corespund restricțiilor impuse") | |||
print(f"Suma divizorilor lui {n} este: {sum_div(n, result)}") | |||
else: | |||
print("Datele introduse nu corespund restricțiilor impuse") | |||
</syntaxhighlight> | </syntaxhighlight> |
Revision as of 20:40, 19 March 2023
Cerință
Să se scrie o funcție Python care să determine suma divizorilor unui număr natural transmis ca parametru. Funcția întoarce rezultatul prin intermediul unui parametru de ieşire.
Restricții de precizări
- Numele funcției va fi sum_div
- Funcția va avea doi parametri, reprezentând numărul pentru care se calculează suma
- divizorilor,respectiv valoarea calculată
- Valorile celor doi parametri vor fi numere naturale nenule mai mici decât 2000000000
Important
Soluţia propusă va conţine doar definiţia funcţiei cerute. Prezenţa în soluţie a altor instrucţiuni poate duce erori de compilare sau de execuţie care vor avea ca efect depunctarea soluţiei.
Rezolvare
Rezolvare ver. 1
<syntaxhighlight lang="python" line="1" start="1"> def validare(n, result):
return 0 < int(n), int(result) < 2000000000
def sum_div(n, result):
result = 0 for i in range(1, n + 1): if n % i == 0: result += i return result
if __name__ == "__main__":
n = input("Introduceți un număr: ") result = 0 if validare(n, result): n = int(n) print("Datele introduse corespund restricțiilor impuse") print(f"Suma divizorilor lui {n} este: {sum_div(n, result)}") else: print("Datele introduse nu corespund restricțiilor impuse")
</syntaxhighlight>