Un entier gaussien est un nombre complexe dont les parties réelle et imaginaire sont des entiers.
Les entiers gaussiens, comme les entiers ordinaires, peuvent être représentés comme un produit de nombres premiers gaussiens, d'une manière unique. Le défi ici est de calculer les constituants premiers d'un entier gaussien donné.
Entrée: un entier gaussien, qui n'est pas égal à 0 et n'est pas une unité (c.-à-d. 1, -1, i et -i ne peuvent pas être donnés comme entrées). Utilisez n'importe quel format raisonnable, par exemple:
- 4-5i
- -5 * j + 4
- (4, -5)
Sortie: une liste d'entiers gaussiens, qui sont premiers (c'est-à-dire qu'aucun d'eux ne peut être représenté comme un produit de deux entiers gaussiens non unitaires), et dont le produit est égal au nombre d'entrée. Tous les nombres dans la liste de sortie doivent être non triviaux, c'est-à-dire pas 1, -1, i ou -i. Tout format de sortie raisonnable peut être utilisé; il ne doit pas nécessairement être le même que le format d'entrée.
Si la liste des sorties contient plus d'un élément, plusieurs sorties correctes sont possibles. Par exemple, pour l'entrée 9, la sortie peut être [3, 3] ou [-3, -3] ou [3i, -3i] ou [-3i, 3i].
Cas de test, (tirés de ce tableau ; 2 lignes par cas de test)
2
1+i, 1-i
3i
3i
256
1+i,1+i,1+i,1+i,1+i,1+i,1+i,1+i,1+i,1+i,1+i,1+i,1+i,1+i,1+i,1+i
7+9i
1+i,2−i,3+2i
27+15i
1+i,3,7−2i
6840+585i
-1-2i, 1+4i, 2+i, 3, 3, 6+i, 6+i
Les fonctions intégrées de factorisation des entiers gaussiens ne sont pas autorisées. La factorisation d'entiers ordinaires par des fonctions intégrées est cependant autorisée.
3i
est la bonne réponse car ce i
n'est pas un premier choix. J'ai mis à jour le cas de test pour le rendre plus clair.
256=(1+i)**16
pas (1+i)**8
parce que 256=2**8=(2i)**8
et2i=(1+i)**2
3i
revenir en tant que3,i
, ou3i
?