3270 - Suma Divizori Pari: Difference between revisions

From Bitnami MediaWiki
No edit summary
 
(4 intermediate revisions by 2 users not shown)
Line 6: Line 6:
Programul afișează pe ecran numărul ”'''suma_divizorilor_pari'''”, reprezentând suma divizorilor pari ai lui ”'''numar'''”.
Programul afișează pe ecran numărul ”'''suma_divizorilor_pari'''”, reprezentând suma divizorilor pari 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 ==
; Intrare
; Intrare
: 8
: 30
; Ieșire
; Ieșire
: Datele introduse corespund restricțiilor impuse.
: Datele de intrare corespund restricțiilor impuse.
: 14
: 48
<br>
<br>
; Intrare
; Intrare
: 5
: 5
; Ieșire
; Ieșire
: Datele introduse corespund restricțiilor impuse.
: Datele de intrare corespund restricțiilor impuse.
: 0
: 0
<br>
; Intrare
: xyz
; Ieșire
: Datele de intrare nu corespund restricțiilor impuse.
== Explicație ==  
== Explicație ==  
Divizorii pari lui '''8''' sunt '''2''', '''4''' și '''8'''. Suma lor este '''14'''.<br>
Divizorii pari lui '''30''' sunt '''2''', '''6''', '''10''' și '''30''' . Suma lor este '''48'''.<br>
Suma divizorilor pari lui '''5''' este '''0''' fiindcă nu are divizori pari.
Suma divizorilor pari lui '''5''' este '''0''' fiindcă nu are divizori pari.
== Rezolvare ==
== Rezolvare ==

Latest revision as of 09:19, 10 April 2023

Cerinţa[edit]

Se dă un număr natural numit ”numar”. Să se determine suma divizorilor pari ai acestuia.

Date de intrare[edit]

Programul citește de la tastatură numărul natural ”numar”.

Date de ieşire[edit]

Programul afișează pe ecran numărul ”suma_divizorilor_pari”, reprezentând suma divizorilor pari ai lui ”numar”.

Restricții și precizări[edit]

  • numar ∈ Ν
  • 0 ⩽ numar ⩽ 1.000.000.000

Exemplu[edit]

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]

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]

<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>