a
and b
are divisors of n
if a * b = n
. You can, without loss of generality, set b >= a
. Therefore a * a
is the upper limit; i.e. you only need to consider up to and including the square root of n
. Once you have an a
, you can trivially infer b
.
You can set the upper limit to be d * d <= n
rather than d <= sqrt(n)
so obviating any computation of a square root. That will be marginally faster still.
6
solved How can I make this code faster?