1568 - Medie Div: Difference between revisions

From Bitnami MediaWiki
Pagină nouă: == Cerinţa == Se dă un număr natural numit ”'''numar'''”. Să se determine media divizorilor ai acestuia. == Date de intrare == Programul citește de la tastatură numărul natural ”'''numar'''”. == Date de ieşire == Programul afișează pe ecran numărul ”'''media'''”, reprezentând media divizorilor ai lui ”'''numar'''”. == Restricții și precizări == * 0 ⩽ numar ⩽ 1.000.000.000 == Exemplu == ; Intrare : 6 ; Ieșire : Datele introduse corespund...
 
No edit summary
 
(4 intermediate revisions by 2 users not shown)
Line 1: Line 1:
== Cerinţa ==
== Cerinţa ==
Se dă un număr natural numit ”'''numar'''”. Să se determine media divizorilor ai acestuia.
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 ==
== Date de intrare ==
Programul citește de la tastatură numărul natural ”'''numar'''”.
Programul citește de la tastatură numărul natural ”'''numar'''”.
== Date de ieşire ==
== Date de ieşire ==
Programul afișează pe ecran numărul ”'''media'''”, reprezentând media divizorilor ai lui ”'''numar'''”.
Programul afișează pe ecran numărul ”'''media'''”, reprezentând media aritmetica.
== 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 ==
; Intrare
; Intrare
: 6
: 9
; Ieșire
; Ieșire
: Datele introduse corespund restricțiilor impuse.
: Datele de intrare corespund restricțiilor impuse.
: 3.0
: 4.33
<br>
<br>
; Intrare
; Intrare
: 8
: 8
; Ieșire
; Ieșire
: Datele introduse corespund restricțiilor impuse.
: Datele de intrare corespund restricțiilor impuse.
: 3.75
: 3.75
<br>
; Intrare
: Ana
; Ieșire
: Datele de intrare nu corespund restricțiilor impuse.
== Explicație ==  
== Explicație ==  
Media divizorilor impari ai lui '''6''' este '''3.0''' ('''12''' / '''4''').<br>
Divizorii lui '''9''' sunt: '''1''', '''3''', '''9'''. Media aritmetica este '''4.33'''.<br>
Suma divizorilor impari ai lui '''8''' este '''3.75''' ('''15''' / '''4''').
Divizorii lui '''8''' sunt: '''1''', '''2''', '''4''', '''8'''. Media aritmetica este '''3.75'''
== Rezolvare ==
== Rezolvare ==
<syntaxhighlight lang="python" line>
<syntaxhighlight lang="python" line>
Line 50: 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.