Номер Proth , названий в честь Франсуа Прот, це число , яке може бути виражено як
N = k * 2^n + 1
Де k
є непарне додатне ціле число і n
є додатне ціле число таким, що 2^n > k
. Скористаємося більш конкретним прикладом. Візьміть 3. 3 - число Прота, оскільки його можна записати як
(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
Кожен інший дійсний вхід повинен дати хибне значення.
Як завжди, це код-гольф, тому застосовуються стандартні лазівки, і найкоротша відповідь у байтах виграє!
Теорія чисел, потішних фактів:
Найбільший відомий прем'єр, який не є прем'єром Мерсенна 19249 * 2^13018586 + 1
, який так само буває і номером Proth!