Bill Allombert on Wed, 06 Apr 2011 18:39:04 +0200


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: Polynomial divisibility


On Wed, Apr 06, 2011 at 11:56:40AM -0400, Charles Greathouse wrote:
> I wanted to know if there's an efficient way to count the number of
> residue classes (mod p) for which the polynomial is divisible by p.
> The straightforward approach
> 
> sum(n=1,p,substpol(P,x,Mod(n,p))==0)
> 
> is slow.
> 
> In my case the polynomial is reducible and of degree 62 with
> 'reasonable' coefficients (wordsize on a 64-bit machine, the largest
> is 44 bits).  I could test the smaller polynomials first but I think
> the overhead would be more expensive than the benefit -- it's rare
> that p will divide any given value of the polynomial.

Assuming that p is prime and P has integral coefficients, why not use
polrootsmod ?

You can do a bit better though:
poldegree(FpX_gcd(P,FpXQ_pow(x,p,P,p)-x))
with the suitable install() invocation.

Cheers,
Bill.