Sebuah Gaussian bilangan bulat adalah bilangan kompleks yang bagian real dan imajiner adalah bilangan bulat.
Bilangan bulat Gaussian, seperti bilangan bulat biasa, dapat direpresentasikan sebagai produk bilangan prima Gaussian, dengan cara yang unik. Tantangannya di sini adalah untuk menghitung konstituen utama dari bilangan bulat Gaussian yang diberikan.
Input: bilangan bulat Gaussian, yang tidak sama dengan 0 dan bukan unit (yaitu 1, -1, i dan -i tidak dapat diberikan sebagai input). Gunakan format apa pun yang masuk akal, misalnya:
- 4-5i
- -5 * j + 4
- (4, -5)
Output: daftar bilangan bulat Gaussian, yang merupakan bilangan prima (yaitu tidak ada satupun yang dapat direpresentasikan sebagai produk dari dua bilangan bulat Gaussian non-unit), dan yang produknya sama dengan nomor input. Semua angka dalam daftar output harus non-sepele, yaitu bukan 1, -1, i atau -i. Segala format output yang masuk akal dapat digunakan; tidak harus sama dengan format input.
Jika daftar output memiliki lebih dari 1 elemen, maka beberapa output yang benar dimungkinkan. Misalnya, untuk input 9 output bisa [3, 3] atau [-3, -3] atau [3i, -3i] atau [-3i, 3i].
Test case, (diambil dari tabel ini ; 2 baris per test case)
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
Fungsi bawaan untuk memfaktorkan bilangan bulat Gaussian tidak diizinkan. Anjak bilangan bulat biasa dengan fungsi bawaan diizinkan.
3i
adalah jawaban yang benar karena i
bukan yang utama. Saya telah memperbarui test case untuk membuatnya lebih jelas.
6840+585i
memiliki daftar faktor yang salah, karena 5
bukan perdana Gaussian. Sebaliknya, ia kembali -1-2i, 1+4i, 2+i, 3, 3, 6+i, 6+i
. Sumber
256=(1+i)**16
bukan (1+i)**8
karena 256=2**8=(2i)**8
dan2i=(1+i)**2
3i
kembali sebagai3,i
, atau3i
?