I have a computational problem where I need to derive the differences in divisor pairs in as few cpu cycles as possible.

In particular I am interested in divisors of numbers of the form $x^3+3*x^2*y+3*x*y^2$.

For example, take the number $669910141$, this factors into:

$[127, 1; 151, 1; 181, 1; 193, 1]$

and has divisors:

$[1, 127, 151, 181, 193, 19177, 22987, 24511, 27331, 29143,$ $34933, 3471037, 3701161, 4436491, 5274883, 669910141]$.

The values that I am interested in deriving are then:

$669910141-1, 5274883-127, 4436491-151$ etc.

Obviously, factoring and then recombining the factors to obtain the divisors involves a lot of redundancy in regards to wasted cpu cycles.

Given that I have 50 cpus tied up 24/7 performing this type of calculation, I'm posting this question in the hope that there exists an efficient algorithm for this type of work.

For further background, this forms part of a process used for identifying, potentially high rank, Mordell type elliptic curves.

UPDATE:

I finally found a way to get the throughput that I was after. This involved using the FLINT (http://flint.org) library for factoring and a hand coded C program for generating the divisors. This has been effective insomuch as this section of the process is no longer the bottleneck that it used to be.

Kevin.