Vamos criar um mapeamento subjetivo simples de números inteiros positivos para números gaussianos , que são números complexos em que as partes reais e imaginárias são números inteiros.
Dado um número inteiro positivo, por exemplo 4538, expresse-o em binário sem líderes 0:
4538 base 10 = 1000110111010 base 2
Remova qualquer trilha 0:
100011011101
Substitua qualquer execução de uma ou mais 0por uma única +:
1+11+111+1
Substitua todos 1por i:
i+ii+iii+i
Avalie a expressão complexa resultante e produza o número inteiro gaussiano simplificado:
i+ii+iii+i = i+i*i+i*i*i+i = 2i+i^2+i^3 = 2i+(-1)+(-i) = -1+i
A saída pode ser expressa de uma maneira matemática tradicional ou fornecida como dois números inteiros separados para as partes real e complexa. Por 4538exemplo, qualquer um deles seria bom:
-1+i
i-1
-1+1i
(-1, 1)
-1 1
-1\n1
Para entradas como 29, saídas de Mathy formatado como 0, 0iou 0+0isão todos muito bem.
Usar j(ou qualquer outra coisa) em vez de ié bom se isso for mais natural para o seu idioma.
O código mais curto em bytes vence.
4+2j->100+10j...