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.