4036 - KDivnn: Difference between revisions
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... |
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 | |||
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 | 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>