Конструктивен п-угольник является правильным многоугольником с п сторон , которые можно построить только с компасом и без опознавательных знаков линейки.
Как заявлено Гаусс, единственный п , для которых п-угольник построимо является продуктом любого числа различных простых чисел Ферма и мощностью 2 (то есть. n = 2^k * p1 * p2 * ...
С k
представляет собой целое число и каждый p
некоторое отличие Ферма Prime).
Простое число Ферма - это простое число, которое может быть выражено как F (n) = 2 ^ (2 ^ n) +1 с положительным целым числом. Единственное известное простое число Ферма для 0, 1, 2, 3 и 4.
Соревнование
Учитывая целое число n>2
, скажите, если n-гон конструктивен или нет.
Спецификация
Ваша программа или функция должны взять целое число или строку, представляющую указанное целое число (в унарной, двоичной, десятичной или любой другой базе), и вернуть или вывести истинное или ложное значение.
Это код-гольф, поэтому самый короткий ответ выигрывает, применяются стандартные лазейки .
Примеры
3 -> True
9 -> False
17 -> True
1024 -> True
65537 -> True
67109888 -> True
67109889 -> False
B
иỊ
которые позволяют мне проверить это в 5.Mathematica, 24 байта
Использует следующую классификацию от OEIS:
Totient
φ(x)
целого числаx
есть число положительных целых чисел ниже ,x
которые взаимно просто сx
. Cototient является числом положительных целых чисел, которые не являются, то естьx-φ(x)
. Если totient равен cototient, это означает, что totient ofφ(x) == x/2
.Более простая классификация
заканчивает тем, что был байтом длиннее:
источник
n
является число целых чисел нижеn
, которые взаимно простыn
, а коотентом является число целых чисел нижеn
, которые не являются взаимно простыми . Я отредактирую в ссылке.n
.Сетчатка,
5150 байтВвод в двоичном виде. Первые две строки делятся на степени двух, следующие две делятся на все известные простые числа Ферма (если на самом деле число является произведением простых чисел Ферма). Редактировать: 1 байт сохранен благодаря @Martin Ender ♦.
источник
JavaScript (ES7), 61 байт
источник
На самом деле, 6 байтов
Этот ответ основан на алгоритме xnor в ответе Jelly Мартина Эндера . Предложения по игре в гольф приветствуются. Попробуйте онлайн!
Как это работает
источник
Пакет, 97 байт
Ввод в стандартном формате в десятичном виде. На самом деле это на 1 байт меньше, чем итеративный расчет степеней степеней 2. Я сохранил 1 байт, используя @ xnor power 2 check.
источник