0245 - Nr Div Max: Difference between revisions
Robert Manc (talk | contribs) 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... |
Robert Manc (talk | contribs) No edit summary |
||
Line 12: | Line 12: | ||
: 20 | : 20 | ||
; Ieșire | ; Ieșire | ||
: Datele | : 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>