0245 - Nr Div Max: Difference between revisions

From Bitnami MediaWiki
Pagină nouă: == Cerinţa == Se dă un număr natural '''numar'''. Să se determine numărul din intervalul '''[1,numar]''' care are număr maxim de divizori. Dacă există mai multe asemenea numere, se va afișa cel mai mic dintre ele. == Date de intrare == Programul citește de la tastatură un număr natural numit ”'''numar'''”. == Date de ieşire == Programul va afișa pe ecran valoarea cerută. == Restricții și precizări == * numar ∈ Ν * 0 ⩽ numar ⩽ 100.000 == E...
 
No edit summary
 
Line 12: Line 12:
: 20
: 20
; Ieșire
; Ieșire
: Datele introduse corespund restricțiilor impuse.
: Datele de intrare corespund restricțiilor impuse.
: 12
: 12
== Explicație ==  
== Explicație ==  

Latest revision as of 10:27, 11 April 2023

Cerinţa[edit | edit source]

Se dă un număr natural numar. Să se determine numărul din intervalul [1,numar] care are număr maxim de divizori. Dacă există mai multe asemenea numere, se va afișa cel mai mic dintre ele.

Date de intrare[edit | edit source]

Programul citește de la tastatură un număr natural numit ”numar”.

Date de ieşire[edit | edit source]

Programul va afișa pe ecran valoarea cerută.

Restricții și precizări[edit | edit source]

  • numar ∈ Ν
  • 0 ⩽ numar ⩽ 100.000

Exemplu[edit | edit source]

Intrare
20
Ieșire
Datele de intrare corespund restricțiilor impuse.
12

Explicație[edit | edit source]

12, 18 şi 20 au număr maxim de divizori, dar 12 este cel mai mic.

Rezolvare[edit | edit source]

<syntaxhighlight lang="python" line> def validare_date(numar):

   flag = False
   if numar.isdigit():
       if 0 <= int(numar) <= 100_000:
           flag = True
   return flag


def nr_div_max(n):

   div_max = 0
   numar_max = 0
   for numar in range(1, n + 1):
       divizori = 0
       for i in range(1, numar + 1):
           if numar % i == 0:
               divizori += 1
       if divizori > div_max:
           div_max = divizori
           numar_max = numar
   print(numar_max)


if __name__ == '__main__':

   numar = input()
   if validare_date(numar):
       print("\nDatele de intrare corespund restricțiilor impuse.\n")
       nr_div_max(int(numar))
   else:
       print("Datele de intrare nu corespund restricțiilor impuse.")

</syntaxhighlight>