Numeros redondos (2) X87201


Statement
 

pdf   zip

html

En este ejercicio, diremos que un natural n es redondo en base b, si la suma de sus dígitos en base b coincide con el número de dígitos en esta base.


Por ejemple, el número 34 no es redondo en base 10 (3 + 4 ≠ 2), pero sí que lo es en base 3, porque

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

Como otro ejemplo, 511 no es redondo en base 16 ya que

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

pero sí que lo es en base 2 (tiene 9 unos, que suman 9). Todavía otro ejemplo más: 370273 no es redondo en base 2, ni en base 3, …, pero sí que lo es en base 608, porque

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

Una secuencia de pares de naturales (n,b), dónde n es un natural y b≥ 2, es bi-redonda si contiene al menos dos pares (n,b) con la propiedad que n es redondo en base b.

Escribid un programa que, dada una secuencia de pares de naturales, indique si es o no bi-redonda.

Vuestro programa tiene que incluir, usar e implementar, la función

bool redondo (int n, int b);

que indica si un natural n es redondo en base b o no.

Entrada

La entrada es una secuencia no vacía de pares de naturales (x,b) con b≥ 2.

Salida Hay que escribir si la secuencia de entrada es o no bi-redonda.

Seguid el formato especificado en los ejemplos. Vuestro código debe seguir las normas de estilo y contener los comentarios que consideréis oportunos.

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
    Spanish
    Translator
    Maria Serna
    Original language
    Catalan
    Other languages
    Catalan English
    Official solutions
    Unknown.
    User solutions
    C++ Python