Một số nguyên Gaussian là một số phức có phần thực và phần ảo là số nguyên.
Các số nguyên Gaussian, giống như các số nguyên thông thường, có thể được biểu diễn dưới dạng một sản phẩm của các số nguyên tố Gaussian, theo cách thức duy nhất. Thách thức ở đây là tính toán các thành phần nguyên tố của một số nguyên Gauss cho trước.
Đầu vào: một số nguyên Gaussian, không bằng 0 và không phải là một đơn vị (nghĩa là 1, -1, i và -i không thể được cung cấp làm đầu vào). Sử dụng bất kỳ định dạng hợp lý, ví dụ:
- 4-5i
- -5 * j + 4
- (4, -5)
Đầu ra: một danh sách các số nguyên Gaussian, là số nguyên tố (nghĩa là không ai trong số chúng có thể được biểu diễn dưới dạng sản phẩm của hai số nguyên Gaussian không đơn vị) và có sản phẩm bằng số đầu vào. Tất cả các số trong danh sách đầu ra phải không tầm thường, tức là không phải 1, -1, i hoặc -i. Bất kỳ định dạng đầu ra hợp lý có thể được sử dụng; nó không nhất thiết phải giống như định dạng đầu vào.
Nếu danh sách đầu ra có nhiều hơn 1 phần tử, thì có thể có một số đầu ra chính xác. Ví dụ: đối với đầu vào 9, đầu ra có thể là [3, 3] hoặc [-3, -3] hoặc [3i, -3i] hoặc [-3i, 3i].
Các trường hợp thử nghiệm, (lấy từ bảng này ; 2 dòng cho mỗi trường hợp thử nghiệm)
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
Các hàm tích hợp để bao thanh toán các số nguyên Gaussian không được phép. Bao thanh toán các số nguyên thông thường bằng các hàm tích hợp được cho phép mặc dù.
3i
là câu trả lời đúng vì i
không phải là số nguyên tố. Tôi đã cập nhật trường hợp thử nghiệm để làm cho nó rõ ràng hơn.
6840+585i
có danh sách các yếu tố sai, vì 5
không phải là một nguyên tố Gaussian. Thay vào đó, nó trở lại -1-2i, 1+4i, 2+i, 3, 3, 6+i, 6+i
. Nguồn
256=(1+i)**16
không phải (1+i)**8
vì 256=2**8=(2i)**8
và2i=(1+i)**2
3i
trả lại như3,i
, hay3i
?