有限域内求解多项式的周期

对于有限域Z/(m)内的多项式f(x),其周期T应满足f(x)|x^T-1

我让T从1开始递增,目的是找到使得余式为0的最小的T

有限域求多项式周期代码:

function [T] = Cycle(m,A)   %m为有限域的模数,A为多项式系数向量,T为周期返回值
T=1;
a0=A(length(A));
if a0<0
    a0=a0+m;
end
b=zeros(1,T+1);           %b为x^T-1的系数向量
b(1)=1;
b(T+1)=-1;
[~,r]=deconv(b,A);
a=find(r,length(r));
c=isempty(a);
if isempty(intersect(a0,m))==1
    while (c==0)
    T=T+1;
    b=zeros(1,T+1);
    b(1)=1;
    b(T+1)=-1;
    [~,r]=deconv(b,A);
    r=mod(r,m);
    a=find(r,length(r));
    c=isempty(a);
    end
end
end

我的代码当f(x)的系数很大时求得的余式向量中含有NaN错误,小弟觉得是deconv函数的问题.

希望问题可以得到解决.