3270 - Suma Divizori Pari
Cerinţa[edit | edit source]
Se dă un număr natural numit ”numar”. Să se determine suma divizorilor pari ai acestuia.
Date de intrare[edit | edit source]
Programul citește de la tastatură numărul natural ”numar”.
Date de ieşire[edit | edit source]
Programul afișează pe ecran numărul ”suma_divizorilor_pari”, reprezentând suma divizorilor pari ai lui ”numar”.
Restricții și precizări[edit | edit source]
- numar ∈ Ν
- 0 ⩽ numar ⩽ 1.000.000.000
Exemplu[edit | edit source]
- Intrare
- 30
- Ieșire
- Datele de intrare corespund restricțiilor impuse.
- 48
- Intrare
- 5
- Ieșire
- Datele de intrare corespund restricțiilor impuse.
- 0
- Intrare
- xyz
- Ieșire
- Datele de intrare nu corespund restricțiilor impuse.
Explicație[edit | edit source]
Divizorii pari lui 30 sunt 2, 6, 10 și 30 . Suma lor este 48.
Suma divizorilor pari lui 5 este 0 fiindcă nu are divizori pari.
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line> def validare_date(numar):
flag = False if numar.isdigit(): if 0 <= int(numar) <= 1_000_000_000: flag = True return flag
def suma(numar):
if numar % 2 == 0: suma_divizorilor_pari = numar else: suma_divizorilor_pari = 0 for i in range(1, numar // 2 + 1): if numar % i == 0: if i % 2 == 0: suma_divizorilor_pari += i print(suma_divizorilor_pari)
if __name__ == '__main__':
numar = input() if validare_date(numar): print("\nDatele de intrare corespund restricțiilor impuse.\n") suma(int(numar)) else: print("Datele de intrare nu corespund restricțiilor impuse.")
</syntaxhighlight>