public static Polynome[] Bezout(Polynome A, Polynome B) { Polynome Uk = 1; Polynome Vk = 0; Polynome UkPlus1 = 0; Polynome VkPlus1 = 1; while (B != 0) { var Uk_save = Uk; var Vk_save = Vk; Uk = UkPlus1; Vk = VkPlus1; UkPlus1 = Uk_save - UkPlus1 * (A / B); VkPlus1 = Vk_save - VkPlus1 * (A / B); var X = B; B = A % B; A = X; } return new Polynome[] { Uk / A.GetCoefficient (A.Degré), Vk / A.GetCoefficient (A.Degré) }; }
public static Polynome PGCD (Polynome A, Polynome B) { while (B != 0) { var X = B; B = A % B; A = X; } return A / A.GetCoefficient (A.Degré); }