0376 - Suma Divizori: Difference between revisions
Robert Manc (talk | contribs) No edit summary |
Robert Manc (talk | contribs) No edit summary |
||
(3 intermediate revisions by one other user not shown) | |||
Line 12: | Line 12: | ||
: 6 | : 6 | ||
; Ieșire | ; Ieșire | ||
: Datele | : Datele de intrare corespund restricțiilor impuse. | ||
: 12 | : 12 | ||
<br> | <br> | ||
Line 18: | Line 18: | ||
: -5 | : -5 | ||
; Ieșire | ; Ieșire | ||
: Datele | : Datele de intrare nu corespund restricțiilor impuse. | ||
== Explicație == | == Explicație == | ||
Divizorii lui '''6''' sunt '''1''', '''2''', '''3''', '''6'''. Suma lor este '''12'''. | Divizorii lui '''6''' sunt '''1''', '''2''', '''3''', '''6'''. Suma lor este '''12'''. | ||
Line 47: | Line 48: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Explicație == | |||
Acest cod calculează suma divizorilor unui număr întreg dat și verifică dacă numărul este valid, adică este un șir de caractere care conține un număr întreg în intervalul [0, 1000000000]. Dacă numărul este valid, funcția calculează suma divizorilor și o afișează pe ecran, altfel afișează un mesaj de eroare. |
Latest revision as of 09:48, 25 April 2023
Cerinţa[edit | edit source]
Se dă un număr natural numit ”numar”. Să se determine suma divizorilor ai acestuia.
Date de intrare[edit | edit source]
Programul citește de la tastatură un număr natural ”numar”.
Date de ieşire[edit | edit source]
Programul afișează pe ecran numărul ”suma”, reprezentând suma divizorilor lui ”numar”.
Restricții și precizări[edit | edit source]
- numar ∈ Ν
- 0 ⩽ numar ⩽ 1.000.000.000
Exemplu[edit | edit source]
- Intrare
- 6
- Ieșire
- Datele de intrare corespund restricțiilor impuse.
- 12
- Intrare
- -5
- Ieșire
- Datele de intrare nu corespund restricțiilor impuse.
Explicație[edit | edit source]
Divizorii lui 6 sunt 1, 2, 3, 6. Suma lor este 12.
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):
suma_divizorilor = 0 for i in range(1, numar // 2 + 1): if numar % i == 0: suma_divizorilor += i suma_divizorilor += numar print(suma_divizorilor)
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 unui număr întreg dat și verifică dacă numărul este valid, adică este un șir de caractere care conține un număr întreg în intervalul [0, 1000000000]. Dacă numărul este valid, funcția calculează suma divizorilor și o afișează pe ecran, altfel afișează un mesaj de eroare.