Créons un mappage simple et surjectif des entiers positifs aux entiers gaussiens , qui sont des nombres complexes dans lesquels les parties réelle et imaginaire sont des entiers.
Par exemple, pour un entier positif 4538, exprimez-le en binaire sans interligne 0:
4538 base 10 = 1000110111010 base 2
Supprimez tous les éléments suivants 0:
100011011101
Remplacez les exécutions d'un ou plusieurs 0par un seul +:
1+11+111+1
Remplacez tout 1par ides:
i+ii+iii+i
Evaluez l'expression complexe résultante et générez le nombre entier gaussien simplifié:
i+ii+iii+i = i+i*i+i*i*i+i = 2i+i^2+i^3 = 2i+(-1)+(-i) = -1+i
La sortie peut être exprimée de manière mathématique traditionnelle ou sous forme de deux entiers distincts pour les parties réelle et complexe. Pour l' 4538exemple, n'importe lequel d'entre eux serait bien:
-1+i
i-1
-1+1i
(-1, 1)
-1 1
-1\n1
Pour les entrées 29telles que 0, les sorties au format mathématique telles que,, 0iou 0+0isont correctes .
Utiliser j(ou autre chose) à la place de iest acceptable si cela est plus naturel pour votre langue.
Le code le plus court en octets gagne.
4+2j->100+10j...