0020 - Suma divizorilor primi
Cerință
Să se scrie o funcție Python care să determine suma divizorilor primi ai 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_prim
- funcția va avea doi parametri, reprezentând numărul pentru care se calculează suma divizorilor, respectiv valoarea calculată
- numărul pentru care se calculează suma divizorilor primi va fi mai mare decât 1 și mai mic decât 2.000.000.000
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 sum_div_prim(numar):
suma = 0 for i in range(2, numar+1): if numar % i == 0: este_prim = True for j in range(2, int(i**0.5)+1): if i % j == 0: este_prim = False break if este_prim: suma += i return suma
</syntaxhighlight>