Definicje
Funkcja Euler Phi ( funkcja totalna AKA ): funkcja, która przyjmuje liczbę dodatnią i zwraca liczbę liczb dodatnich mniejszą niż podaną liczbę, które są jednocześnie liczbą pierwszą. Jest oznaczony jako
φ(n)
.Osiągalna liczba : jeśli istnieje dodatnia liczba całkowita
x
takaφ(x) == n
, ton
jest osiągalna .
Zadanie
Napisz funkcję / program, aby ustalić, czy dana dodatnia liczba całkowita jest osiągalna.
Wejście
Liczba dodatnia, w dowolnym rozsądnym formacie. Można założyć, że liczba mieści się w zakresie możliwości danego języka. Jednoargumentowe wejście jest akceptowane.
Wynik
Dwie spójne wartości, jedna dla liczb osiągalnych, a druga dla liczb nieosiągalnych. Te dwie wartości mogą być dowolne, o ile są spójne.
Przypadki testowe
Poniżej osiągalne liczby 100
:
1, 2, 4, 6, 8, 10, 12, 16, 18, 20, 22, 24, 28, 30, 32, 36, 40, 42, 44, 46, 48, 52, 54, 56, 58, 60, 64, 66, 70, 72, 78, 80, 82, 84, 88, 92, 96
( A002202 w OEIS)
Zasady
Kryterium wygranej
To jest golf golfowy . Zgłoszenie z najniższą liczbą bajtów wygrywa.
Bibliografia
źródło
phi(n) = count { m : 1 <= m <= n AND (m,n) are coprime }
.. czy to prawda?Odpowiedzi:
Galaretka ,
76 bajtówNiezupełnie szybko. Zwraca 1 lub 0 .
Wypróbuj online!
Jak to działa
źródło
Mathematica, 28 bajtów
Podobnie jak odpowiedź Jelly'ego na Jelly, obliczamy wartości φ wszystkich liczb aż do kwadratu wejścia i sprawdzamy, czy dane wejściowe się tam pojawiają. Zwraca,
False
jeśli wejście jest osiągalne, aTrue
jeśli nie. Tak, to mylące. AleFreeQ
bajt jest krótszy niżMatchQ
i hej, specyfikacja podała dowolne dwie spójne wartości> :)źródło
JavaScript (ES6),
9082 bajtówZwraca
0
lubtrue
.Jest to oparte na założeniu, że jeśli x istnieje, to x ≤ 2n . Jeśli okaże się fałszywy, należy go zaktualizować, aby użyć
x=n*n
zamiastx=n*2
(ten sam rozmiar, znacznie wolniej).Przypadek krawędzi ma wartość n = 128 co wymaga obliczenia ϕ (255) .
Próbny
Pokaż fragment kodu
źródło
n=2
,n=8
,n=128
,n=32768
in=2147483648
.Aksjomat, 56 bajtów
nie wiem czy to jest poprawne ... kod testowy i wyniki
Zakres 1 .. (2 * x) będzie w porządku, dopóki wejście x = 500 ...
źródło
Pari / GP , 34 bajty
Zwraca,
0
jeśli jest osiągalny,1
jeśli nie.Wypróbuj online!
źródło
05AB1E , 5 bajtów
Wyjaśnienie:
Wypróbuj online!
źródło
05AB1E ,
1312 bajtówEDYTOWAĆ : Zapisano bajt, ponieważ dane wejściowe są ponownie wykorzystywane, jeśli stos nie ma wystarczającej liczby elementów.
Wyjścia 1, jeśli osiągalne, 0 jeśli nie.
Opiera się na założeniu, że x ≤ 2n, jeśli istnieje.
Wypróbuj online!
Jak to działa
źródło
C, 123 bajty
Wypróbuj online
źródło