一个高斯整数是一个复杂的数字,其实虚部是整数。
像普通整数一样,高斯整数可以以独特的方式表示为高斯素数的乘积。这里的挑战是计算给定高斯整数的素数。
输入:高斯整数,不等于0,也不是单位(即1,-1,i和-i不能作为输入)。使用任何明智的格式,例如:
- 4-5i
- -5 * j + 4
- (4,-5)
输出:高斯整数列表,它们是质数(即,没有一个可以表示为两个非单位高斯整数的乘积),并且其乘积等于输入数。输出列表中的所有数字都必须是平凡的,即不能为1,-1,i或-i。可以使用任何明智的输出格式。它不必与输入格式相同。
如果输出列表中有多个元素,则可能有几个正确的输出。例如,对于输入9,输出可以是[3,3]或[-3,-3]或[3i,-3i]或[-3i,3i]。
测试用例,(从此表中获取;每个测试用例2行)
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
不允许使用用于分解高斯整数的内置函数。但是,允许通过内置函数分解普通整数。
3i
是正确的答案,因为i
它不是素数。我已经更新了测试案例,以使其更加清晰。
256=(1+i)**16
不是(1+i)**8
因为256=2**8=(2i)**8
和2i=(1+i)**2
3i
以3,i
还是返回3i
?