py.user.nextсовершенно верно
Это обычный бинарный поиск (в основе лежит принцип дихотомии). Максимальное количество шагов равно log2(1000) ~= 9.96
а для точности нахождения из множества 0…N начальное число должно быть
>>> import math >>> N=1000 >>> 1 << math.floor(math.log2(N)) 512 >>>