0020 - Suma divizorilor primi

De la Universitas MediaWiki
Versiunea din 25 martie 2023 14:08, autor: Cuceu Andrei (discuție | contribuții) (Pagină nouă: ==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 f...)
(dif) ← Versiunea anterioară | Versiunea curentă (dif) | Versiunea următoare → (dif)

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

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