0966 - X Min
Sursă: [1]
Enunț
Fie X un număr natural format din exact K cifre, toate nenule, iar S suma cifrelor lui X. Pornind de la aceste numere, se construiește mulțimea M a tuturor numerelor naturale care:
au suma cifrelor egală cu S sunt formate fiecare din exact K cifre, toate cifrele fiind nenule. Pentru fiecare număr din mulțimea M se calculează produsul cifrelor sale. Fie P valoarea maximă a produselor calculate.
Cel mai mic număr din mulțimea M care are produsul cifrelor egal cu P îl vom denumi elementul primar al mulțimii.
Cerință
Scrieţi un program care să citească numerele K și X (cu semnificația din enunț) şi care să determine elementul primar al mulțimii M.
Date de intrare
Programul citește de la tastatură numerele K X, numărul X fiind format din K cifre.
Date de ieșire
Programul va afișa pe ecran un număr natural de K cifre reprezentând elementul primar al mulțimii M.
Restricții și precizări
- 1 ≤ K ≤ 33
- toate cifrele lui X sunt nenule
Exemplu
- Intrare
- 3
- 124
- Ieșire
- 223
Rezolvare
k = int(input("Numărul de cifre: "))
n = input("Numărul: ").strip() # adaugam metoda .strip() pentru a elimina spațiile inutile din jurul numărului
sum = 0
for c in n:
if c.isdigit(): # adaugam verificarea pentru a ignora caracterele care nu sunt cifre
sum += int(c)
a = [0] * 101
poz = 1
while k:
a[poz] = sum // k
sum -= a[poz]
poz += 1
k -= 1
a = a[1:poz]
a.sort()
print(''.join(str(x) for x in a))