Я новичок в Maple и пытаюсь реализовать gcd из 2 полиномов с помощью алгоритма Евклида.
Я был совершенно уверен в своем коде, но получаю странные дробные результаты
with(Algebraic);
euclide:=proc(a, b)
local r0, r1, tmp, q;
r0 := a;
r1 := b;
while (degree(r0) > degree(r1)) and (r1 <> 0) do
q := Quotient(r0, r1, x);
tmp := r0 - q * r1;
r0 := r1;
r1 := tmp;
r0 := expand(r0);
r1 := expand(r1);
od;
return expand(r0);
end;
При выполнении моего алгоритма на случайных полиномах, я получаю очень странный дробный результат, в то время как функция gcd в Maple выдает результат 1. Я не понимаю ошибку в моей программе.