0017 - Suma divizorilor 2
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>