Details and Options
Given positive integers
a,b such that
a>b and a semiprime
N, we may compute a factor,
q, of
N by creating the sequence
where
Q0=N. The sequence terminates if
Qk<2, in which case the method has failed for the
a/b-rational base representation. Otherwise, the sequence terminates if
, in which case we have found a factor,
q, of
N.
Similar to Fermat's factorisation algorithm, which factors
N=p q quickly when
p is close to
,
ResourceFunction["FactorSemiprime"] will factor
N=p q quickly when
, with
and
a,b are exhaustively searchable.
Similar to trial division, which tests successive odd integers for divisibility, ResourceFunction["FactorSemiprime"] exhaustively tests each possible a/b-rational base representation of p in lexicographic order. That is, a/b=2,3,4,3/2,5,6,5/2,4/3,7,5/3,…
However, unlike trial division, for a single
a/b, if
, then
ResourceFunction["FactorSemiprime"] will obtain the factor
, for all
c∈ℕ and for all
Δ∈ℕ such that
.
Much like other existing algorithms for integer factorisation, it is exceedingly unlikely that ResourceFunction["FactorSemiprime"] will quickly factor an arbitrary, large semiprime.