3916 - elim m
Cerința
Scrieți un program care citește două numere naturale n și m și care afișează cel mai mare număr care se poate obține eliminând din n exact m cifre, unde m este mai mic decât numărul de cifre ale lui n. Cifrele rămase în n nu-și pot schimba ordinea.
Date de intrare
Programul citește de la tastatură numerele n și m.
Date de ieșire
Programul va afișa pe ecran numărul x, reprezentând valoarea cerută.
Restricții și precizări
nare cel mult17cifre.meste mai mic decât numărul de cifre ale luin.meste număr nenul.
Exemplul 1
Intrare
3452234 4
Ieșire
544
Exemplul 2
Intrare
58435983264732647264912647362498236496324723684 21
Consola
Introduceți numere valide conform restricțiilor.
Rezolvare
<syntaxhighlight lang="python3" line="1"> def valideaza_restricții(n, m):
return 0 < m < len(str(n)) <= 17 and n >= 0
def cel_mai_mare_numar(n, m):
cifre = [int(cifra) for cifra in str(n)]
cifre.sort(reverse=True) cifre = cifre[:-m]
rezultat = int(.join(map(str, cifre))) return rezultat
def main():
try:
n = int(input("Introduceți n: "))
m = int(input("Introduceți m: "))
if not valideaza_restricții(n, m):
print("Introduceți numere valide conform restricțiilor.")
return
if len(str(n)) > 17:
print("Numărul introdus depășește lungimea maximă admisă de 17 cifre.")
return
rezultat = cel_mai_mare_numar(n, m)
print(f"Cel mai mare număr obținut eliminând exact {m} cifre din {n} este: {rezultat}")
except ValueError:
print("Introduceți numere valide.")
if __name__ == "__main__":
main()
</syntaxhighlight>