Учитывая два целых числа 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 находятся внутри этого интервала)