Um repdigit é um número natural que pode ser gravado apenas repetindo o mesmo dígito. Por exemplo, 777
é um re-dígito, pois é composto exclusivamente pelo dígito 7
repetido três vezes.
Isso não se limita a números decimais (base 10), no entanto:
- Todo número de Mersenne (no formato M n = 2 n -1 ) é um re-dígito quando escrito em binário (base 2).
- Todo número é trivialmente um repdigit quando escrito em unário (base 1).
- Cada número
n
também pode ser trivialmente escrito como o repdigit11
na basen-1
(por exemplo,17
quando escrito em hexadecimal (base 16)11
, e3
quando escrito em binário (base 2) também11
).
O desafio aqui é encontrar outras bases nas quais o número de entrada possa ser um re-dígito.
Entrada
Um número inteiro positivo x > 3
, em qualquer formato conveniente.
Saída
Um número inteiro positivo b
em (x-1) > b > 1
que a representação de x
na base b
é um re-dígito.
- Se não
b
existir, saída0
ou algum valor falsey . - Se
b
existirem vários , você pode gerar um ou todos eles.
Regras
- A
(x-1) > b > 1
restrição é impedir as conversões triviais em unárias ou na base "subtrair uma". O número de saída pode ser escrito em uma base unária ou em qualquer base conveniente, mas a base em si não deve ser uma das conversões triviais. - A entrada / saída pode ser feita por qualquer método adequado .
- Aplicam-se restrições de brecha padrão .
Exemplos
In --> Out
11 --> 0 (or other falsey value)
23 --> 0 (or other falsey value)
55 --> 10 (since 55 is 55 in base 10)
90 --> 14 (since 90 is 66 in base 14 ... 17, 29, 44 also allowed)
91 --> 9 (since 91 is 111 in base 9 ... 12 also allowed)
b ≤ 36
severamente o escopo desse problema, e todas as respostas existentes lidam corretamente com bases maiores, então vou dizer que não, você não pode assumir um limite superior b
além do que é dado.
b ≤ 36
(as funções básicas de conversão de base de muitos idiomas não aumentam)?