0966 - X Min

From Bitnami MediaWiki
Revision as of 19:04, 18 March 2023 by MiclausIoana (talk | contribs) (Pagină nouă: Sursă: [https://www.pbinfo.ro/probleme/966/xmin] == 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'...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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>