Gaussian ціле являє собою комплексне число, дійсні та уявні частини є цілими числами.
Цілі гауссові цілі числа, як і звичайні цілі числа, можна унікальним чином представити як добуток гауссових простих чисел. Завдання тут полягає в обчисленні простих складових даного цілого числа Гаусса.
Введення: ціле число Гаусса, яке не дорівнює 0 і не є одиницею (тобто 1, -1, i і -i не можна подавати як входи). Використовуйте будь-який розумний формат, наприклад:
- 4-5i
- -5 * j + 4
- (4, -5)
Вихід: перелік гауссових цілих чисел, які є простими (тобто жодне з них не може бути представлене як добуток двох цілих гауссових цілих чисел), чий добуток дорівнює вхідному числу. Усі числа у списку вихідних даних повинні бути нетривіальними, тобто не 1, -1, i або -i. Можна використовувати будь-який розумний вихідний формат; це не обов'язково має бути таким же, як формат введення.
Якщо у списку виходів є більше 1 елемента, то можливі кілька правильних виходів. Наприклад, для входу 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
?