Учитывая два целых числа a
и b
, существует ли эффективный способ проверить, существует ли другое целое число n
такое, что a ≤ n2 < b
?
Мне не нужно знать n
, только существует ли хотя бы один такой n
или нет, поэтому я надеюсь, что избежать вычисления квадратных корней любых чисел в интервале.
Хотя проверяет, является ли индивидуальное целое идеальный квадрат быстрее, чем вычисление квадратного корня, диапазон может быть большим, и я также предпочел бы избежать выполнения этого теста для каждого числа в пределах диапазона.
Примеры:
-
intervalContainsSquare(2, 3)
= > false -
intervalContainsSquare(5, 9)
= > false (примечание: 9 находится за пределами этого интервала) -
intervalContainsSquare(9, 9)
= > false (этот интервал пуст) -
intervalContainsSquare(4, 9)
= > true (4 находится внутри этого интервала) -
intervalContainsSquare(5, 16)
= > true (9 находится внутри этого интервала) -
intervalContainsSquare(1, 10)
= > true (1, 4 и 9 находятся внутри этого интервала)