4036 - KDivnn

From Bitnami MediaWiki
Revision as of 18:07, 11 January 2024 by Mraa (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Cerința

Se dau n şi k numere naturale nenule. Determinaţi cel mai mare număr natural de cel mult k cifre care divide pe nn.

Date de intrare

Programul citește de la tastatură numerele n şi k.

Date de ieșire

Programul va afișa pe ecran numărul cerut.

Restricții și precizări

2 ≤ n ≤ 10.000.000 1 ≤ k ≤ 12 ==Exemplu==: Intrare

6 3 Ieșire

972

Explicație

Cel mai mare număr de trei cifre care divide pe 66 este 972.

Rezolvare

<syntaxhighlight lang="python3" line="1"> def cel_mai_mare_divizor_nn(n, k):

  # Inițializăm cel mai mare număr cu k cifre
  cel_mai_mare_numar = 10**k - 1
  # Cautăm cel mai mare număr care să fie divizibil cu nn
  while cel_mai_mare_numar >= 0:
      if cel_mai_mare_numar % (n * n) == 0:
          return cel_mai_mare_numar
      cel_mai_mare_numar -= 1
  return -1  # Dacă nu găsim un astfel de număr, returnăm -1

if __name__ == "__main__":

  # Citim datele de intrare
  n, k = map(int, input().split())
  # Apelăm funcția și afișăm rezultatul
  rezultat = cel_mai_mare_divizor_nn(n, k)
  print(rezultat)

python divizor_nn.py </syntaxhighlight>