Число - это простое число Мерсенна, если оно простое и может быть записано в виде 2 n -1 , где n - положительное целое число.
Ваша задача состоит в том, чтобы с учетом любого положительного целого числа определить, является ли оно простым числом Мерсенна. Вы можете отправить либо функцию, которая возвращает истинное / ложное значение, либо полную программу, которая выполняет ввод-вывод.
Правила:
- Так как это код-гольф , вы должны стремиться сделать это как можно быстрее. Встроенные разрешены.
- Применяются стандартные лазейки для игры в гольф - вы не можете прочитать простые числа Мерсенна из внешних файлов или жестко закодировать их в своей программе.
- Ваша программа должна работать для значений в пределах стандартного целочисленного размера вашего языка.
Тестовые случаи
Для справки, список (известных) простых чисел Мерсенна можно найти здесь . Некоторые удобные тестовые примеры:
2 -> False
1 -> False
20 -> False
51 -> False
63 -> False
3 -> True
31 -> True
8191 -> True
Всех с Рождеством! Хорошего вам праздника, что бы вы ни отмечали :)
2^n-1
n
is always prime, but knowing that changes nothing, the definition is still correct.