প্রাসঙ্গিক লিঙ্কগুলি এখানে এবং এখানে , তবে এখানে সংক্ষিপ্ত সংস্করণটি রয়েছে:
আপনার কাছে দুটি পূর্ণসংখ্যার ইনপুট রয়েছে a
এবং b
নেতিবাচক অনন্ত এবং অনন্তের মধ্যে (যদিও প্রয়োজনে আমি ব্যাপ্তিটি সীমাবদ্ধ করতে পারি তবে ফাংশনটি এখনও অবশ্যই নেতিবাচক ইনপুট গ্রহণ করতে পারে)।
ক্রোনেকার প্রতীক সংজ্ঞা
(a|b)
ইনপুট a
এবং b
কোথায় আপনাকে ক্রোনেকার প্রতীকটি ফিরে আসতে হবে
(a|b) = (a|p_1)^e_1 * (a|p_2)^e_2 * ... * (a|p_n)^e_n
যেখানে b = p_1^e_1 * p_2^e_2 * ... * p_n^e_n
এবং p_i
এবং e_i
এর প্রধান ফ্যাক্টরীকরণের মধ্যে প্রাইমস এবং এক্সপোজারগুলি b
।
একটি বিজোড় প্রাইম জন্য p
, এখানে(a|p)=a^((p-1)/2) (mod p)
সংজ্ঞায়িত ।
জন্য b == 2
,(n|2)={0 for n even; 1 for n odd, n=+/-1 (mod 8); -1 for n odd, n=+/-3 (mod 8)
জন্য b == -1
,(n|-1)={-1 for n<0; 1 for n>0
যদি a >= b
, (a|b) == (z|b)
কোথায় z == a % b
। এই সম্পত্তি দ্বারা, এবং হিসাবে ব্যাখ্যা এখানে এবং এখানে , a
একটি দ্বিঘাত অবশিষ্টাংশ হয় b
যদি z
হয়, যদিও a >= b
।
(-1|b)
= 1
যদি b == 0,1,2 (mod 4)
এবং -1
যদি b == 3 (mod 4)
। (0|b)
হয় 0
ছাড়া (0|1)
যা 1
, কারণ (a|1)
সর্বদা 1
এবং ঋণাত্মক জন্য a
, (-a|b) == (-1|b) * (a|b)
।
ক্রোনেকার প্রতীকের আউটপুট সর্বদা থাকে -1, 0 or 1
, যেখানে আউটপুট 0
থাকে a
এবং b
যদি কোনও সাধারণ কারণ থাকে। তাহলে b
, একটি বিজোড় মৌলিক (a|b) == 1
যদি a
একটি হয় দ্বিঘাত অবশিষ্টাংশ গেলিক ভাষার b
, আর -1
যদি এটি একটি দ্বিঘাত অবশিষ্টাংশ নয়।
বিধি
আপনার কোড অবশ্যই একটি প্রোগ্রাম বা একটি ফাংশন হতে হবে।
ইনপুটগুলি অবশ্যই ক্রমে থাকা উচিত
a b
।আউটপুট অবশ্যই হয়
-1
,0
বা1
।এটি কোড গল্ফ, সুতরাং আপনার কোডটি দক্ষ হতে হবে না, কেবল সংক্ষেপে।
এমন কোনও বিল্ট-ইন নেই যা ক্রোনেকার বা সম্পর্কিত জ্যাকোবি এবং লেজেন্ড্রে প্রতীকগুলি সরাসরি গণনা করে। অন্যান্য বিল্ট-ইনগুলি (উদাহরণস্বরূপ প্রাইম ফ্যাক্টরীকরণের জন্য) নিখরচায় খেলা।
উদাহরণ
>>> 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
এটি একটি জটিল ফাংশন, সুতরাং দয়া করে কিছু অস্পষ্ট কিনা তা আমাকে জানান।