Nombres rodons (2) X87201


Statement
 

pdf   zip

html

En aquest exercici, direm que un natural n és rodó en base b, si la suma dels seus dígits en base b coincideix amb el nombre de dígits en aquesta base.


Per exemple, el nombre 34 no és rodó en base 10 (3 + 4 ≠ 2), però sí que ho és en base 3, perquè

1· 33 + 0·  32 + 2 · 31 + 1 · 30 = 34  i   1 + 0 + 2 + 1 = 4.

Com un altre exemple, 511 no és rodó en base 16 ja què

1 ·  162 + 15 ·  161 + 15 ·  160 = 511   i  1 + 15 + 15 = 31 ≠ 3,

però sí que ho és en base 2 (té 9 uns, que sumen 9). Encara un exemple més: 370273 no és rodó en base 2, ni en base 3, …, però sí que ho és en base 608, perquè

1 ·  6082 + 1 ·  6081 + 1 · 6080 = 370273  i 1 + 1 + 1 = 3.

Una sequència de parells de naturals (n,b), on n és un natural i b≥ 2, es bi-rodona si conté al menys dos parells (n,b) amb la propietat que n és rodó en base b.

Feu un programa que, donada una seqüència de parells de naturals, indiqui si és o no bi-rodona.

El vostre programa ha d’incloure, usar i implementar, la funció

bool rodo (int n, int b);

que indica si un natural n és rodó en base b o no.

Entrada

L’entrada és una seqüència no buida de parells de naturals (x,b) amb b≥ 2.

Sortida Cal escriure si la seqüència d’entrada és o no bi-rodona.

Seguiu el format especificat als exemples. El vostre codi ha de seguir les normes d’estil i contenir els comentaris que considereu oportuns.

Public test cases
  • Input

    34 10 
    34 3 
    511 16  
    511 2  
    370273 2 
    370273 608
    

    Output

    SI
    
  • Input

    34 10

    Output

    NO
    
  • Input

    34 3 
    

    Output

    NO
    
  • Input

    34 10
    511 6
    300 10
    320 10
    34 3

    Output

    SI
    
  • Information
    Author
    Professorat de PRO1
    Language
    Catalan
    Other languages
    English Spanish
    Official solutions
    Unknown. This problem is being checked.
    User solutions
    C++ Python