Base més petita amb el mateix nombre de dígits P19666


Statement
 

pdf   zip

html

Recordeu que en un sistema de numeració posicional, la base és el nombre de dígits (símbols) diferents utilitzats per a representar els nombres. Per exemple, en base 2, anomenat sistema de numeració binari, només existeixen dos dígits: 0 i 1. En base 10, el sistema de numeració decimal utilitzat habitualment, existeixen 10 dígits (del 0 al 9). També es poden considerar bases superiors a 10, com per exemple el sistema sexagesimal (emprat pels sumeris i pels babilonis) que usa base 60.

Donats dos nombres naturals, es vol trobar la base més petita (a partir de dos) en la qual els dos nombres tenen el mateix nombre de dígits. Observeu que aquesta base sempre existeix: agafeu el màxim, sumeu una unitat, i la representació és d’un dígit en aquesta base.

Per a fer-ho, escriviu i useu una acció

void base_amb_mateix_nombre_de_digits(int x, int y, int& b, int& n);

que, donats dos naturals x i y, desi en b quina és la base més petita (amb b≥2) en la qual x i y tenen el mateix nombre de dígits, i desi en n el nombre de dígits de x i y en aquesta base.

Entrada

L’entrada conté diferents casos. Cada cas conté un parell de naturals, tots dos són menors o iguals que 2·109.

Sortida

Per a cada cas de l’entrada, la base més petita en la qual tenen el mateix nombre de dígits i el nombre de dígits que tenen en aquesta base.

Pista

Fixeu-vos que quan x i y són molt allunyats l’un de l’altre, calcular els dígits de l’un i de l’altre en base b i veure si coïncideixen és lent.

Observació

No podeu usar la biblioteca matemàtica per resoldre aquest problema.

Public test cases
  • Input

    11 8
    3 2
    1 3
    76345 34763
    367 5623
    2000000000 1
    

    Output

    2 4
    2 2
    4 1
    5 7
    18 3
    2000000001 1
    
  • Information
    Author
    Jordi Cortadella
    Language
    Catalan
    Official solutions
    C++
    User solutions
    C++ Python