Neste desafio, você calculará números de uma sequência curiosa.
Sua entrada é um número inteiro decimal não negativo único. Inverta os bits nesse número inteiro e, em seguida, quadrado o número para obter a saída necessária.
Ao reverter os bits, você não deve usar nenhum zeros à esquerda na entrada. Por exemplo:
26 (base 10) = 11010 (base 2) -> 01011 (base 2) = 11 -> 11*11 = 121
As primeiras 25 entradas / saídas desta sequência:
0: 0
1: 1
2: 1
3: 9
4: 1
5: 25
6: 9
7: 49
8: 1
9: 81
10: 25
11: 169
12: 9
13: 121
14: 49
15: 225
16: 1
17: 289
18: 81
19: 625
20: 25
21: 441
22: 169
23: 841
24: 9
Sua solução deve funcionar para números inteiros de tamanho arbitrário. Se o seu idioma não possui um método interno conveniente para usá-los, implemente sua resposta como se tivesse. Você será dispensado se sua resposta quebrar para números grandes. No entanto, não use truques / limites que funcionem apenas para um domínio limitado (como uma tabela de pesquisa).
Sua pontuação é o número de bytes do código fonte.
Bônus de -50% se você nunca converter o número de / para o binário. Isso não se limita aos componentes internos; se você percorrer o número pouco a pouco (alternando ou mascarando ou qualquer outro método), ele também contará como conversão. Não sei se isso é realmente possível, mas incentiva a identificação de um padrão na sequência.
Menor pontuação ganha.