Задав десятичное число k
, найдите наименьшее целое число, n
такое, что корень квадратный из n
находится в пределах k
целого числа. Однако расстояние должно быть ненулевым - n
не может быть идеальным квадратом.
Дано k
десятичное число или дробь (в зависимости от того, что проще для вас), например 0 < k < 1
, выведите наименьшее положительное целое число n
, чтобы разница между квадратным корнем n
и ближайшим целым числом к квадратному корню была n
меньше или равна, k
но отлична от нуля ,
Если i
ближайшее целое число к квадратному корню из n
, вы ищете первое n
где 0 < |i - sqrt(n)| <= k
.
правила
- Вы не можете использовать в языке недостаточную реализацию нецелых чисел, чтобы тривиализировать проблему.
- В противном случае можно предположить, что
k
это не вызовет проблем, например, с округлением с плавающей запятой.
Тестовые случаи
.9 > 2
.5 > 2
.4 > 3
.3 > 3
.25 > 5
.2 > 8
.1 > 26
.05 > 101
.03 > 288
.01 > 2501
.005 > 10001
.003 > 27888
.001 > 250001
.0005 > 1000001
.0003 > 2778888
.0001 > 25000001
.0314159 > 255
.00314159 > 25599
.000314159 > 2534463
Разделенные запятыми входные данные теста:
0.9, 0.5, 0.4, 0.3, 0.25, 0.2, 0.1, 0.05, 0.03, 0.01, 0.005, 0.003, 0.001, 0.0005, 0.0003, 0.0001, 0.0314159, 0.00314159, 0.000314159
Это код-гольф , поэтому выигрывает самый короткий ответ в байтах.