1568 - Medie Div: Difference between revisions
Diana Butuza (talk | contribs) No edit summary |
Robert Manc (talk | contribs) No edit summary |
||
(One intermediate revision by the same user not shown) | |||
Line 12: | Line 12: | ||
: 9 | : 9 | ||
; Ieșire | ; Ieșire | ||
: Datele | : Datele de intrare corespund restricțiilor impuse. | ||
: 4.33 | : 4.33 | ||
<br> | <br> | ||
Line 18: | Line 18: | ||
: 8 | : 8 | ||
; Ieșire | ; Ieșire | ||
: Datele | : Datele de intrare corespund restricțiilor impuse. | ||
: 3.75 | : 3.75 | ||
<br> | <br> | ||
Line 24: | Line 24: | ||
: Ana | : Ana | ||
; Ieșire | ; Ieșire | ||
: Datele | : Datele de intrare nu corespund restricțiilor impuse. | ||
== Explicație == | == Explicație == | ||
Divizorii lui '''9''' sunt: '''1''', '''3''', '''9'''. Media aritmetica este '''4.33'''.<br> | Divizorii lui '''9''' sunt: '''1''', '''3''', '''9'''. Media aritmetica este '''4.33'''.<br> | ||
Line 56: | Line 56: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Explicație == | |||
În acest cod funcția de validare verifică dacă numărul este un întreg pozitiv între 0 și 1_000_000_000, iar funcția care calculează media divizorilor adună toți divizorii numărului dat și îi împarte la numărul total de divizori ai acestuia, afișând apoi rezultatul. |
Latest revision as of 09:55, 25 April 2023
Cerinţa[edit | edit source]
Se dă un număr natural numit ”numar”. Să se calculeze şi să se afişeze media aritmetică a tuturor divizorilor săi. Media va fi cu fix 2 zecimale dupa virgula.
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 ”media”, reprezentând media aritmetica.
Restricții și precizări[edit | edit source]
- numar ∈ Ν
- 0 ⩽ numar ⩽ 1.000.000.000
Exemplu[edit | edit source]
- Intrare
- 9
- Ieșire
- Datele de intrare corespund restricțiilor impuse.
- 4.33
- Intrare
- 8
- Ieșire
- Datele de intrare corespund restricțiilor impuse.
- 3.75
- Intrare
- Ana
- Ieșire
- Datele de intrare nu corespund restricțiilor impuse.
Explicație[edit | edit source]
Divizorii lui 9 sunt: 1, 3, 9. Media aritmetica este 4.33.
Divizorii lui 8 sunt: 1, 2, 4, 8. Media aritmetica este 3.75
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 medie(numar):
suma_divizorilor = numar numarul_divizorilor = 1 #inițializăm numarul_divizorilor cu 1 pentru că suma_divizorilor deja conține numărul însuși for i in range(1, numar // 2 + 1): if numar % i == 0: suma_divizorilor += i numarul_divizorilor += 1 medie_divizori = suma_divizorilor / numarul_divizorilor print(medie_divizori)
if __name__ == '__main__':
numar = input() if validare_date(numar): print("\nDatele de intrare corespund restricțiilor impuse.\n") medie(int(numar)) else: print("Datele de intrare nu corespund restricțiilor impuse.")
</syntaxhighlight>
Explicație[edit | edit source]
În acest cod funcția de validare verifică dacă numărul este un întreg pozitiv între 0 și 1_000_000_000, iar funcția care calculează media divizorilor adună toți divizorii numărului dat și îi împarte la numărul total de divizori ai acestuia, afișând apoi rezultatul.