0387 - Suma Divizori Impari: Difference between revisions
Robert Manc (talk | contribs) No edit summary |
Robert Manc (talk | contribs) No edit summary |
||
(2 intermediate revisions by one other user not shown) | |||
Line 6: | Line 6: | ||
Programul afișează pe ecran numărul ”'''suma_divizorilor_impari'''”, reprezentând suma divizorilor impari ai lui ”'''numar'''”. | Programul afișează pe ecran numărul ”'''suma_divizorilor_impari'''”, reprezentând suma divizorilor impari ai lui ”'''numar'''”. | ||
== Restricții și precizări == | == Restricții și precizări == | ||
* numar ∈ Ν | |||
* 0 ⩽ numar ⩽ 1.000.000.000 | * 0 ⩽ numar ⩽ 1.000.000.000 | ||
== Exemplu == | == Exemplu == | ||
Line 11: | Line 12: | ||
: 30 | : 30 | ||
; Ieșire | ; Ieșire | ||
: Datele | : Datele de intrare corespund restricțiilor impuse. | ||
: 24 | : 24 | ||
<br> | <br> | ||
Line 17: | Line 18: | ||
: 13 | : 13 | ||
; Ieșire | ; Ieșire | ||
: Datele | : Datele de intrare corespund restricțiilor impuse. | ||
: 14 | : 14 | ||
<br> | |||
; Intrare | |||
: -5 | |||
; Ieșire | |||
: Datele de intrare nu corespund restricțiilor impuse. | |||
== Explicație == | == Explicație == | ||
Divizorii impari ai lui '''30''' sunt '''1''', '''3''', '''5''', '''15'''. Suma lor este '''24'''.<br> | Divizorii impari ai lui '''30''' sunt '''1''', '''3''', '''5''', '''15'''. Suma lor este '''24'''.<br> | ||
Line 51: | Line 58: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Explicație == | |||
Acest cod calculează suma divizorilor impari ai unui număr întreg dat și verifică validitatea datelor de intrare. Se folosește o funcție pentru validare și o funcție pentru calculul sumei divizorilor impari, iar apoi se verifică dacă numărul dat de utilizator este valid și se apelează funcția pentru calculul sumei divizorilor impari. |
Latest revision as of 09:50, 25 April 2023
Cerinţa[edit | edit source]
Se dă un număr natural numit ”numar”. Să se determine suma divizorilor impari 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_impari”, reprezentând suma divizorilor impari 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.
- 24
- Intrare
- 13
- Ieșire
- Datele de intrare corespund restricțiilor impuse.
- 14
- Intrare
- -5
- Ieșire
- Datele de intrare nu corespund restricțiilor impuse.
Explicație[edit | edit source]
Divizorii impari ai lui 30 sunt 1, 3, 5, 15. Suma lor este 24.
Divizorii impari ai lui 13 este 1 și 13. Suma lor este 14.
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 == 1: suma_divizorilor_impari = numar else: suma_divizorilor_impari = 0 for i in range(1, numar // 2 + 1): if numar % i == 0: if i % 2 == 1: suma_divizorilor_impari += i print(suma_divizorilor_impari)
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>
Explicație[edit | edit source]
Acest cod calculează suma divizorilor impari ai unui număr întreg dat și verifică validitatea datelor de intrare. Se folosește o funcție pentru validare și o funcție pentru calculul sumei divizorilor impari, iar apoi se verifică dacă numărul dat de utilizator este valid și se apelează funcția pentru calculul sumei divizorilor impari.