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
<syntaxhighlight lang="python" line="1"> 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)) </syntaxhighlight>