Dans ce défi, vous calculerez des nombres à partir d'une séquence curieuse.
Votre entrée est un entier non décimal unique. Inversez les bits de cet entier, puis mettez le nombre au carré pour obtenir la sortie requise.
Lors de l'inversion des bits, vous ne devez pas utiliser de zéros de tête dans l'entrée. Par exemple:
26 (base 10) = 11010 (base 2) -> 01011 (base 2) = 11 -> 11*11 = 121
Les 25 premières entrées / sorties de cette séquence:
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
Votre solution devrait fonctionner pour des entiers de taille arbitraire. Si votre langue ne dispose pas d'une méthode intégrée pratique pour les utiliser, implémentez votre réponse comme si c'était le cas. Vous êtes alors excusé si votre réponse casse pour les grands nombres. Cependant, n'utilisez pas d'astuces / limites qui ne fonctionnent que pour un domaine limité (comme une table de recherche).
Votre score est le nombre d'octets de code source.
-50% de bonus si vous ne convertissez jamais le nombre en / de binaire. Cela ne se limite pas aux prédéfinis, si vous bouclez sur le nombre bit par bit (soit en décalant ou en masquant ou toute autre méthode), cela comptera également comme conversion. Je ne sais pas si cela est réellement possible, mais cela incite à repérer un motif dans la séquence.
Le plus petit score l'emporte.