Funció per als nombres rodons P63625


Statement
 

pdf   zip   main.cc

En aquest problema, direm que un nombre nn és rodó en base bb si la suma dels dígits de la seva representació en base bb és igual al nombre de dígits en aquesta representació.

Per exemple, el nombre 34 no és rodó en base 10 (3+423 + 4 \ne 2), però sí que ho és en base 3, perquè 133+032+231+130=341 \cdot 3^3 + 0 \cdot 3^2 + 2 \cdot 3^1 + 1 \cdot 3^0 = 34, i 1+0+2+1=41 + 0 + 2 + 1 = 4. Com un altre exemple, 511 no és rodó en base 16 (1162+15161+15160=5111 \cdot 16^2 + 15 \cdot 16^1 + 15 \cdot 16^0 = 511, i 1+15+15=3131 + 15 + 15 = 31 \ne 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è 16082+16081+16080=3702731 \cdot 608^2 + 1 \cdot 608^1 + 1 \cdot 608^0 = 370273, i 1+1+1=31 + 1 + 1 = 3.

Escriviu una funció

    int primera_base_rodona(int n);

que retorni la primera base @b@ 2\ge 2 en què @n@ 3\ge 3 és rodò. Fixeu-vos que la funció està ben definida, perquè tot natural n3n \ge 3 és rodò en base n1n-1.

Precondició

Es compleix @n@ 3\ge 3.

Observació

Només cal enviar el procediment demanat; el programa principal serà ignorat.

Information
Author
Àlvar Vinacua
Language
Catalan
Official solutions
C++
User solutions
C++