Các liên kết có liên quan ở đây và đây , nhưng đây là phiên bản ngắn:
Bạn có đầu vào gồm hai số nguyên avà bgiữa vô cực âm và vô cực (mặc dù nếu cần, tôi có thể giới hạn phạm vi, nhưng hàm vẫn phải chấp nhận đầu vào âm).
Định nghĩa biểu tượng Kronecker
Bạn phải trả lại biểu tượng Kronecker (a|b)cho đầu vào avà bnơi
(a|b) = (a|p_1)^e_1 * (a|p_2)^e_2 * ... * (a|p_n)^e_n
nơi b = p_1^e_1 * p_2^e_2 * ... * p_n^e_n, và p_ivà e_ilà số nguyên tố và số mũ trong nguyên tố của b.
Đối với một số nguyên tố lẻ p, (a|p)=a^((p-1)/2) (mod p)như được định nghĩa ở đây .
Đối với b == 2,(n|2)={0 for n even; 1 for n odd, n=+/-1 (mod 8); -1 for n odd, n=+/-3 (mod 8)
Đối với b == -1,(n|-1)={-1 for n<0; 1 for n>0
Nếu a >= b, (a|b) == (z|b)ở đâu z == a % b. Bởi tài sản này, và như được giải thích ở đây và ở đây , alà một dư lượng bậc hai của bif z, mặc dù a >= b.
(-1|b)= 1nếu b == 0,1,2 (mod 4)và -1nếu b == 3 (mod 4). (0|b)là 0ngoại trừ (0|1)đó là 1, bởi vì (a|1)luôn luôn 1và cho tiêu cực a, (-a|b) == (-1|b) * (a|b).
Đầu ra của biểu tượng Kronecker luôn luôn -1, 0 or 1, trong đó đầu ra là 0nếu avà bcó bất kỳ yếu tố chung nào. Nếu blà một số nguyên tố lẻ, (a|b) == 1nếu alà một dư lượng bậc hai mod b, và -1nếu là nó không phải là một dư lượng bậc hai.
Quy tắc
Mã của bạn phải là một chương trình hoặc một chức năng.
Các đầu vào phải theo thứ tự
a b.Các đầu ra phải là một trong hai
-1,0hoặc1.Đây là mã golf, vì vậy mã của bạn không cần phải hiệu quả, chỉ cần ngắn.
Không có tích hợp nào tính toán trực tiếp Kronecker hoặc các biểu tượng Jacobi và Legendre liên quan. Các phần mềm tích hợp khác (ví dụ: thừa số nguyên tố) là trò chơi công bằng.
Ví dụ
>>> kronecker(1, 5)
1
>>> kronecker(3, 8)
-1
>>> kronecker(15, 22)
1
>>> kronecker(21, 7)
0
>>> kronecker(5, 31)
1
>>> kronecker(31, 5)
1
>>> kronecker(7, 19)
1
>>> kronecker(19, 7)
-1
>>> kronecker(323, 455625)
1
>>> kronecker(0, 12)
0
>>> kronecker(0, 1)
1
>>> kronecker(12, 0)
0
>>> kronecker(1, 0)
1
>>> kronecker(-1, 5)
1
>>> kronecker(1, -5)
1
>>> kronecker(-1, -5)
-1
>>> kronecker(6, 7)
-1
>>> kronecker(-1, -7)
1
>>> kronecker(-6, -7)
-1
Đây là một chức năng phức tạp, vì vậy xin vui lòng cho tôi biết nếu có bất cứ điều gì không rõ ràng.


