What is the most efficient algorithm for factorisation when an approximate value of one factor is known

Your range has an upper bound about 2-3 percent larger than the lower bound. So, the answer is that there is nothing much you can do simply based on a range like that. This is because you could start with a small range, say 100-102. Then 102-102*1.02, then 102*1.02-102*1.02^2, and so forth. Proceeding like that, you only need about log base 1.02 of $n$ steps to cover the whole range of factors (well, half that to get to the square root). Thus, if you had a good algorithm using ranges of that fineness, you would have a good algorithm in general.

Just multiply the complexity of your special case algorithm by a linear factor, and you have the complexity of a valid general factoring algorithm. Since a linear factor is small beans in the world of integer factorization, an interval that is only fine to the tune of a few percent is therefore essentially useless in simplifying the problem.

Now, your range is very close to the square root, so maybe you are thinking something can be done from that. This still doesn't help, because you could proceed as I mentioned before, but at each step multiply the range or number to factor by an integer so as to transform the problem into one where the range covers any particular value calculated based on the number to factor (like its square root). Then an algorithm that could use a range with a fineness on the order of a couple percent, located anywhere specific with respect to the number to factor, can be used to construct a general purpose algorithm at the cost of a linear factor.

So, the answer to your question is definitely no, a huge range like that is not helpful. You'd just have to forget about the range and use a general purpose algorithm.


We know that $N$ has a factor $p$ between $0.97213\sqrt N$ and $0.97476\sqrt N$. Then for suitable $a$ (small, but with good factors), $N'=aN$ may have a factor very close to $\sqrt{N'}$, and that can be found by Fermat's method. For example if $a=20\cdot 19$ and $p\approx 0.97476\sqrt N$ then $20p\approx 1.00008\sqrt{aN}$. This $a$ was just a simple ad hoc example and already seems somewhat helpful (for a part of the possible factor range). To me it sounds promising to go look for a nice $a$ with many factor between $0.97213\sqrt a$ and $0.97476\sqrt a$.