Um número inteiro gaussiano é um número complexo cujas partes reais e imaginárias são números inteiros.
Inteiros gaussianos, como inteiros comuns, podem ser representados como um produto de números primos gaussianos, de uma maneira única. O desafio aqui é calcular os constituintes principais de um dado inteiro gaussiano.
Entrada: um número inteiro gaussiano, que não é igual a 0 e não é uma unidade (ou seja, 1, -1, iei não podem ser dados como entradas). Use qualquer formato sensível, por exemplo:
- 4-5i
- -5 * j + 4
- (4, -5)
Saída: uma lista de números inteiros gaussianos, que são primos (ou seja, nenhum deles pode ser representado como um produto de dois números inteiros gaussianos não unitários) e cujo produto é igual ao número de entrada. Todos os números na lista de saída devem ser não triviais, ou seja, não 1, -1, i ou -i. Qualquer formato de saída sensível pode ser usado; não deve necessariamente ser o mesmo que o formato de entrada.
Se a lista de saída tiver mais de 1 elemento, serão possíveis várias saídas corretas. Por exemplo, para a entrada 9, a saída pode ser [3, 3] ou [-3, -3] ou [3i, -3i] ou [-3i, 3i].
Casos de teste (extraídos desta tabela ; 2 linhas por caso de teste)
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
Funções internas para fatorar números inteiros gaussianos não são permitidas. No entanto, é permitido levar em consideração números inteiros comuns por funções internas.
3i
é a resposta correta porque i
não é primo. Atualizei o caso de teste para torná-lo mais claro.
256=(1+i)**16
não (1+i)**8
porque 256=2**8=(2i)**8
e2i=(1+i)**2
3i
retornar como3,i
ou3i
?