Constructible n-gon jest regularny wielobok o n bokach, które można budować tylko z kompasem i nieoznakowanym linijki.
Jak stwierdził Gauss, jedynym n, dla którego można zbudować n-gon, jest iloczyn dowolnej liczby odrębnych liczb pierwszych Fermata i potęgi 2 (tj. n = 2^k * p1 * p2 * ...
Z k
byciem liczbą całkowitą i każdą p
inną wyraźną liczbą pierwszą Fermata).
Liczba pierwsza Fermata jest liczbą pierwszą, którą można wyrazić jako F (n) = 2 ^ (2 ^ n) +1 z liczbą całkowitą dodatnią. Jedyne znane liczby pierwsze Fermata to 0, 1, 2, 3 i 4.
Wyzwanie
Biorąc pod uwagę liczbę całkowitą n>2
, powiedz, czy n-gon jest możliwy do zbudowania, czy nie.
Specyfikacja
Twój program lub funkcja powinna przyjąć liczbę całkowitą lub ciąg znaków reprezentujący tę liczbę całkowitą (w postaci jednoargumentowej, binarnej, dziesiętnej lub dowolnej innej podstawie) i zwrócić lub wydrukować wartość prawdy lub fałszu.
To jest golf golfowy, więc wygrywa najkrótsza odpowiedź, obowiązują standardowe luki .
Przykłady
3 -> True
9 -> False
17 -> True
1024 -> True
65537 -> True
67109888 -> True
67109889 -> False
B
iỊ
który pozwala mi to przetestować w 5.Mathematica, 24 bajty
Wykorzystuje następującą klasyfikację z OEIS:
Totient
φ(x)
liczby całkowitejx
jest liczba dodatnich liczb całkowitych poniżejx
, które są względnie pierwsze dox
. Cototient to liczba dodatnich liczb całkowitych, które nie są, tjx-φ(x)
. Jeśli suma jest równa kototenowi, oznacza to, że suma zφ(x) == x/2
.Prostsza klasyfikacja
kończy się bajtem dłużej:
źródło
n
liczb jest liczbą całkowitą poniżej,n
które sąn
chronione prawem autorskim, a cototient jest liczbą liczb całkowitych poniżejn
, które nie są. Zmienię link.n
.Siatkówka,
5150 bajtówDane wejściowe są binarne. Pierwsze dwie linie dzielą się przez potęgę dwóch, następne dwie dzielą przez wszystkie znane liczby pierwsze Fermata (jeśli w rzeczywistości liczba jest iloczynem liczb pierwszych Fermata). Edycja: Zapisano 1 bajt dzięki @Martin Ender ♦.
źródło
JavaScript (ES7), 61 bajtów
źródło
Właściwie 6 bajtów
Ta odpowiedź jest oparta na algorytmie xnora w odpowiedzi Jelly Martina Endera . Sugestie dotyczące gry w golfa mile widziane. Wypróbuj online!
Jak to działa
źródło
Partia, 97 bajtów
Wejście jest ustawione na standardowe w systemie dziesiętnym. Jest to w rzeczywistości 1 bajt krótszy niż iteracyjne obliczanie mocy potęg 2. Zapisałem 1 bajt, używając @ xnor potęgi 2 czeków.
źródło