Учитывая положительное целое число N
, выведите количество пар целых чисел, 0 <= a <= b < 2**N
таких что a*b >= 2**N
.
правила
- Вы можете предположить, что
N
она меньше или равна максимальной битовой ширине для целых чисел в вашем языке (например, для C,N
не будет превышать32
или64
, в зависимости от архитектуры машины). Если ваш язык способен обрабатывать целые числа произвольной ширины, то верхней границы нетN
.
Тестовые случаи
1 0
2 3
3 19
4 96
5 437
6 1876
7 7804
8 31904
9 129170
10 520135
11 2088143
12 8369175
13 33512744
14 134128704
15 536681553
16 2147082274
a <= b
условие.{0, 3, 19, 96, 437, 1876, 7804, 31904, 129170, 520135, 2088143, 8369175, 33512744, 134128704, 536681553, 2147082274, 8589086503, 34357951447}
Ответы:
Python 2,
7568 байтПопробуйте онлайн!
Это выполняется в операциях O (2 n / 2 ), а не O (2 n ) или O (2 2 · n ), поэтому оно работает на гораздо больших входах.
(Обратите внимание, что существует еще более быстрый алгоритм O (2 n / 3 ) .)
источник
x=0;y=0
наx=y=0
2^{N/3}
решение тоже.Желе ,
1210 байтЗавершает комбинированные тестовые задания менее чем за 3 секунды.
Попробуйте онлайн!
Как это устроено
источник
MATL ,
109 байтПопробуйте онлайн!
Это пробует все возможные пары. Недостаточно памяти в онлайн-интерпретаторе для превышения ввода
12
.объяснение
источник
Брахилог , 21 байт
Попробуйте онлайн!
источник
A
этой переменной, сохраняя один байт.05AB1E ,
1312 байт-1 байт благодаря Emigna
Попробуйте онлайн!
объяснение
источник
P
здесь достаточно.JavaScript (ES7),
706560 байтКонтрольные примеры
Показать фрагмент кода
источник
Mathematica, 37 байт
Попробуйте это онлайн на http://sandbox.open.wolframcloud.com . Mathematica не имеет ограничения на целые числа, и этот алгоритм выполняется за время 2 n , поэтому он очень медленный для больших
n
.источник
Clojure, 78 байт
источник
На самом деле , 13 байтов
Попробуйте онлайн!
Буквальная реализация проблемы. Довольно медленно
источник
╙;r;∙♂S╔♂π♀≥Σ
(незначительное изменение к версии, которую я отправил в чате )PHP , 62 байта
Попробуйте онлайн!
источник
Python 2 , 53 байта
Попробуйте онлайн!
источник
Желе , 11 байт
Попробуйте онлайн!
Буквальная реализация проблемы. Довольно медленно
источник