Номер Proth , названный в честь Франсуа Прот, это число , которое может быть выражено как
N = k * 2^n + 1
Где k
нечетное положительное целое число и n
такое положительное целое число, что 2^n > k
. Давайте использовать более конкретный пример. Возьмите 3. 3 - число Proth, потому что оно может быть записано как
(1 * 2^1) + 1
и 2^1 > 1
доволен. 5 Это также число Proth, потому что оно может быть записано как
(1 * 2^2) + 1
и 2^2 > 1
доволен. Тем не менее, 7 не число Proth потому что единственный способ записать его в виде N = k * 2^n + 1
является
(3 * 2^1) + 1
и 2^1 > 3
не устраивает.
Ваша задача довольно проста: вы должны написать программу или функцию, которая, с учетом положительного целого числа, определяет, является ли это число Протона или нет. Вы можете принимать входные данные в любом приемлемом формате и должны выводить истинное значение, если это число Протса, и ложное значение, если это не так. Если на вашем языке есть какие-либо функции «обнаружения числа протеза», вы можете их использовать.
Тест IO
Вот первые 46 чисел Proth до 1000. ( A080075 )
3, 5, 9, 13, 17, 25, 33, 41, 49, 57, 65, 81, 97, 113, 129, 145, 161, 177, 193, 209, 225, 241, 257, 289, 321, 353, 385, 417, 449, 481, 513, 545, 577, 609, 641, 673, 705, 737, 769, 801, 833, 865, 897, 929, 961, 993
Любой другой действительный ввод должен давать ложное значение.
Как обычно, это код-гольф, поэтому применяются стандартные лазейки, и выигрывает самый короткий ответ в байтах!
Дополнительная информация о теории чисел:
Самое большое известное простое число, которое не является Mersenne Prime 19249 * 2^13018586 + 1
, и это тоже случай с числом Протса!