3159 - numere124
Cerința
Se citesc un număr natural n
având cifrele diferite două câte două și o cifră c
. Afișați în ordine crescătoare numerele formate din c
cifre distincte care se pot obține din cifrele lui n
.
Date de intrare
Programul citește de la tastatură numerele n
și c
.
Date de ieșire
Programul va afișa pe ecran numerele cerute, câte unul pe fiecare rând. În cazul în care restricțiile nu sunt îndeplinite, se va afișa mesajul "Nu corespunde restricțiilor".
Restricții și precizări
1 ≤ n ≤ 1.000.000.000
,1 < c < 9
n
are cifrele distinctec
este mai mic decât numărul de cifre ale luin
Exemplu 1
Intrare
2576 2
Ieșire
25 26 27 52 56 57 62 65 67 72 75 76
Exemplul 2
Intrare
2576 2
consola
"Nu corespunde restricțiilor"
Rezolvare
<syntaxhighlight lang="python3" line="1"> from itertools import permutations
def verifica_restrictii(n, c):
# Verifică restricțiile if not (1 <= n <= 1000000000 and 1 < c < 9): return False
# Verifică dacă n are cifre distincte cifre = set(str(n)) if len(cifre) != len(str(n)): return False
# Verifică dacă c este mai mic decât numărul de cifre ale lui n if c >= len(str(n)): return False
return True
def generare_numere(n, c):
# Verifică restricțiile if not verifica_restrictii(n, c): print("Nu corespunde restricțiilor") return
# Restul codului pentru generarea și afișarea numerelor cifre = list(str(n)) permutari = list(permutations(cifre, c))
for perm in sorted(permutari): numar = int("".join(perm)) print(numar)
- Citeste input-ul de la tastatură
input_data = input("Introduceti n si c separate prin spatiu: ") n, c = map(int, input_data.split())
- Apelul funcției
generare_numere(n, c)
</syntaxhighlight>