Un n-gon constructible est un polygone régulier à n côtés que vous pouvez construire avec uniquement une boussole et une règle non marquée.
Comme indiqué par Gauss, le seul pour lequel n a n-gon est constructible est un produit d'un nombre quelconque de nombres premiers de Fermat distincts et une puissance de 2 (ie. n = 2^k * p1 * p2 * ...
En k
étant un nombre entier et chaque p
certaine perfection de Fermat distincts).
Un nombre premier de Fermat est un nombre premier qui peut être exprimé comme F (n) = 2 ^ (2 ^ n) +1 avec un entier positif. Les seuls nombres premiers de Fermat connus sont pour 0, 1, 2, 3 et 4.
Le défi
Étant donné un entier n>2
, dites si le n-gon est constructible ou non.
spécification
Votre programme ou fonction doit prendre un entier ou une chaîne représentant ledit entier (soit en unaire, binaire, décimal ou toute autre base) et retourner ou imprimer une valeur véridique ou fausse.
Il s'agit de code-golf, donc la réponse la plus courte l'emporte, les échappatoires standard s'appliquent.
Exemples
3 -> True
9 -> False
17 -> True
1024 -> True
65537 -> True
67109888 -> True
67109889 -> False
B
etỊ
qui m'a permis de le tester en 5.Mathematica, 24 octets
Utilise la classification suivante d'OEIS:
Le total
φ(x)
d'un entierx
est le nombre d'entiers positifs en dessousx
qui sont coprimesx
. Le cototient est le nombre d'entiers positifs qui ne le sont pas, c'est-à-direx-φ(x)
. Si le totient est égal au cototient, cela signifie que le totient deφ(x) == x/2
.La classification la plus simple
finit par être un octet de plus:
la source
n
est le nombre d'entiers cin
- dessous qui sont coprime ton
, et le cototient est le nombre d'entiers cin
- dessous qui ne le sont pas. Je vais éditer dans un lien.n
.Rétine,
5150 octetsL'entrée est en binaire. Les deux premières lignes se divisent par une puissance de deux, les deux suivantes se divisent par tous les nombres premiers de Fermat connus (si en fait le nombre est un produit des nombres premiers de Fermat). Edit: 1 octet enregistré grâce à @Martin Ender ♦.
la source
JavaScript (ES7), 61 octets
la source
En fait, 6 octets
Cette réponse est basée sur l'algorithme de xnor dans la réponse Jelly de Martin Ender . Suggestions de golf bienvenues. Essayez-le en ligne!
Comment ça fonctionne
la source
Lot, 97 octets
L'entrée est sur stdin en décimal. Ceci est en fait 1 octet plus court que le calcul itératif des puissances des puissances de 2. J'ai économisé 1 octet en utilisant la puissance de @ xnor de 2 chèques.
la source