F004B. Productes estables

Diem que el producte de x per y és estable si els dígits de x i de y per
una banda, i els digits de x * y per l’altra, són els mateixos. Per
exemple, el producte
875 * 650 = 568750
és estable, ja que a les dues bandes hi ha un 0, dos 5s, un 6, un 7, i
un 8.

Aquesta propietat es pot estendre a altres bases diferents de 10. Per
exemple, el producte de 3 per 53 és estable en base 2:
11 * 110101 = 10011111
ja que a cada banda hi ha dos 0s i sis 1s.

Feu un programa que, donada una sèrie de parells x i y, digui per a
quines bases entre 2 i 16 (incloses) el producte x * y és estable.

Per resoldre aquest problema, implementeu i useu la funció

        bool mateixos_digits(int x, int y, int b);

que indica si, en base b (amb 2 ≤ b ≤ 16), x i y per una banda, i x * y
per l’altra, tenen els mateixos dígits.

També, implementeu i useu l’acció

        void escriu(int n, int b);

que escriu n en base b per pantalla (tal qual, sense espais ni salts de
línia).

Entrada

L’entrada és una seqüència de parells de naturals x i y. Es compleix
x ≥ 1, y ≥ 1, x * y ≤ 10⁹. Podeu assumir aquesta informació com a
precondició dels vostres procediments.

Sortida

Per a cada parell de x i y, cal indicar en quines bases el producte
x * y és estable. Si no n’hi ha cap, cal indicar-ho. Escriviu una línia
en blanc després de la sortida per a cada cas. Seguiu el format de
l’exemple.

Observació

Si feu proves amb nombres a l’atzar i el vostre programa no troba cap
solució, no us espanteu: la majoria de productes no són estables.

Informació del problema

Autoria: Professorat de P1

Generació: 2026-01-25T12:19:56.832Z

© Jutge.org, 2006–2026.
https://jutge.org
