F004B. Productes estables P89407


Statement
 

pdf   zip

thehtml

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 ≤ 109. 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.



Public test cases
  • Input

    875 650
    3 53
    140 245
    1 1
    118 224
    

    Output

    solucions per a 875 i 650
    1101101011 * 1010001010 = 10001010110110101110 (base 2)
    31223 * 22022 = 2022312232 (base 4)
    4015 * 3002 = 20105034 (base 6)
    875 * 650 = 568750 (base 10)
    
    solucions per a 3 i 53
    11 * 110101 = 10011111 (base 2)
    
    solucions per a 140 i 245
    10001100 * 11110101 = 1000010111111100 (base 2)
    2030 * 3311 = 20113330 (base 4)
    8C * F5 = 85FC (base 16)
    
    solucions per a 1 i 1
    cap
    
    solucions per a 118 i 224
    A8 * 194 = 1894A (base 11)
    
    
  • Information
    Author
    Professorat de P1
    Language
    Catalan
    Other languages
    English
    Official solutions
    C++
    User solutions
    C++