Un número entero gaussiano es un número complejo cuyas partes reales e imaginarias son números enteros.
Los enteros gaussianos, como los enteros ordinarios, pueden representarse como un producto de números primos gaussianos, de una manera única. El desafío aquí es calcular los constituyentes primos de un entero gaussiano dado.
Entrada: un entero gaussiano, que no es igual a 0 y no es una unidad (es decir, 1, -1, i y -i no se pueden dar como entradas). Use cualquier formato sensible, por ejemplo:
- 4-5i
- -5 * j + 4
- (4, -5)
Salida: una lista de enteros gaussianos, que son primos (es decir, ninguno de ellos puede representarse como un producto de dos enteros gaussianos no unitarios), y cuyo producto es igual al número de entrada. Todos los números en la lista de salida deben ser no triviales, es decir, no 1, -1, i o -i. Se puede usar cualquier formato de salida sensible; no debe ser necesariamente el mismo que el formato de entrada.
Si la lista de salida tiene más de 1 elemento, entonces son posibles varias salidas correctas. Por ejemplo, para la entrada 9, la salida puede ser [3, 3] o [-3, -3] o [3i, -3i] o [-3i, 3i].
Casos de prueba (tomados de esta tabla ; 2 líneas por caso de prueba)
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
Las funciones integradas para factorizar enteros gaussianos no están permitidas. Sin embargo, se permite factorizar enteros comunes mediante funciones integradas.
3i
es la respuesta correcta porque i
no es primo. He actualizado el caso de prueba para hacerlo más claro.
256=(1+i)**16
no (1+i)**8
porque 256=2**8=(2i)**8
y2i=(1+i)**2
3i
regresar como3,i
o3i
?