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.