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