4036 - KDivnn: Difference between revisions

From Bitnami MediaWiki
Mraa (talk | contribs)
Pagină nouă: ==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== def ce...
 
Mraa (talk | contribs)
No edit summary
 
Line 21: Line 21:
Cel mai mare număr de trei cifre care divide pe 66 este 972.
Cel mai mare număr de trei cifre care divide pe 66 este 972.
==Rezolvare==
==Rezolvare==
<syntaxhighlight lang="python3" line="1">
def cel_mai_mare_divizor_nn(n, k):
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
  # Inițializăm cel mai mare număr cu k cifre
    while cel_mai_mare_numar >= 0:
  cel_mai_mare_numar = 10**k - 1
        if cel_mai_mare_numar % (n * n) == 0:
  # Cautăm cel mai mare număr care să fie divizibil cu nn
            return cel_mai_mare_numar
  while cel_mai_mare_numar >= 0:
        cel_mai_mare_numar -= 1
      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


    return -1  # Dacă nu găsim un astfel de număr, returnăm -1
if __name__ == "__main__":


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


    # Apelăm funcția și afișăm rezultatul
    rezultat = cel_mai_mare_divizor_nn(n, k)
    print(rezultat)
python divizor_nn.py
python divizor_nn.py
</syntaxhighlight>

Latest revision as of 18:07, 11 January 2024

Cerința[edit | edit source]

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[edit | edit source]

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

Date de ieșire[edit | edit source]

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

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

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

6 3 Ieșire

972

Explicație[edit | edit source]

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

Rezolvare[edit | edit source]

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