Un n-gon construible es un polígono regular con n lados que puedes construir con solo una brújula y una regla sin marcar.
Según Gauss, el único n para el cual un n-gon es construible es un producto de cualquier número de primos Fermat distintos y una potencia de 2 (es decir, n = 2^k * p1 * p2 * ...
con k
un número entero y cada p
uno de los primos Fermat distintos).
Un primo de Fermat es un primo que se puede expresar como F (n) = 2 ^ (2 ^ n) +1 con un entero positivo. Los únicos primos Fermat conocidos son para 0, 1, 2, 3 y 4.
El reto
Dado un número entero n>2
, diga si el n-gon es constructible o no.
Especificación
Su programa o función debe tomar un número entero o una cadena que represente dicho número entero (ya sea en base unaria, binaria, decimal o cualquier otra base) y devolver o imprimir un valor verdadero o falso.
Este es el código de golf, por lo que la respuesta más corta gana, se aplican las lagunas estándar .
Ejemplos
3 -> True
9 -> False
17 -> True
1024 -> True
65537 -> True
67109888 -> True
67109889 -> False
B
yỊ
que me permite probarlo en 5.Mathematica, 24 bytes
Utiliza la siguiente clasificación de OEIS:
El totient
φ(x)
de un número enterox
es el número de enteros positivos inferioresx
que son primos entre sí ax
. El cototiente es el número de enteros positivos que no lo son, es decirx-φ(x)
. Si el totient es igual al cototient, eso significa que el totient deφ(x) == x/2
.La clasificación más directa
termina siendo un byte más largo:
fuente
n
es el número de enteros a continuaciónn
que son coprimosn
, y el cototient es el número de enteros a continuaciónn
que no lo son. Lo editaré en un enlace.n
.Retina,
5150 bytesLa entrada está en binario. Las primeras dos líneas se dividen por una potencia de dos, las siguientes dos se dividen por todos los primos Fermat conocidos (si de hecho el número es un producto de los primos Fermat). Editar: Guardado 1 byte gracias a @Martin Ender ♦.
fuente
JavaScript (ES7), 61 bytes
fuente
En realidad, 6 bytes
Esta respuesta se basa en el algoritmo de xnor en la respuesta Jelly de Martin Ender . Sugerencias de golf bienvenidas. Pruébalo en línea!
Cómo funciona
fuente
Lote, 97 bytes
La entrada está en stdin en decimal. Esto es en realidad 1 byte más corto que calcular las potencias de las potencias de 2 de forma iterativa. Ahorré 1 byte usando el poder de @ xnor de 2 cheques.
fuente