F004B. Productes estables

Diem que el producte de xx per yy és estable si els dígits de xx i de yy per una banda, i els digits de x*yx * y per l’altra, són els mateixos. Per exemple, el producte 875*650=568750875 * 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=1001111111 * 110101 = 10011111 ja que a cada banda hi ha dos 0s i sis 1s.

Feu un programa que, donada una sèrie de parells xx i yy, digui per a quines bases entre 2 i 16 (incloses) el producte x*yx * 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 bb (amb 2b162\le b\le 16), xx i yy per una banda, i x*yx * y per l’altra, tenen els mateixos dígits.

També, implementeu i useu l’acció

    void escriu(int n, int b);

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

Entrada

L’entrada és una seqüència de parells de naturals xx i yy. Es compleix x1x \ge 1, y1y \ge 1, x*y109x * y \le 10^9. Podeu assumir aquesta informació com a precondició dels vostres procediments.

Sortida

Per a cada parell de xx i yy, cal indicar en quines bases el producte x*yx * 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