ZA Liczba Proth , nazwany François Proth, to numer, który można wyrazić jako
N = k * 2^n + 1
Gdzie k
jest nieparzysta dodatnia liczba całkowita in
jest liczbą całkowitą dodatnią taką, że 2^n > k
. Użyjmy bardziej konkretnego przykładu. Weź 3. 3 to liczba Proth, ponieważ można ją zapisać jako
(1 * 2^1) + 1
i 2^1 > 1
jest zadowolony. 5 Jest także liczbą Proth, ponieważ można ją zapisać jako
(1 * 2^2) + 1
i 2^2 > 1
jest zadowolony. Jednak 7 nie jest liczbą Proth, ponieważ jest to jedyny sposób na zapisanie jej w formularzuN = k * 2^n + 1
jest
(3 * 2^1) + 1
i 2^1 > 3
nie jest zadowolony.
Twoje wyzwanie jest dość proste: musisz napisać program lub funkcję, która przy dodatniej liczbie całkowitej określa, czy jest to liczba Proth, czy nie. Możesz przyjmować dane wejściowe w dowolnym rozsądnym formacie i powinieneś wypisać prawdziwą wartość, jeśli jest to liczba Protha i wartość fałsz, jeśli nie jest. Jeśli język ma żadnego „Proth-szereg funkcji wykrywania”, to może z nich korzystać.
Przetestuj IO
Oto pierwsze 46 liczb Proth do 1000. ( A080075 )
3, 5, 9, 13, 17, 25, 33, 41, 49, 57, 65, 81, 97, 113, 129, 145, 161, 177, 193, 209, 225, 241, 257, 289, 321, 353, 385, 417, 449, 481, 513, 545, 577, 609, 641, 673, 705, 737, 769, 801, 833, 865, 897, 929, 961, 993
Każde inne prawidłowe wejście powinno dawać wartość fałszowania.
Jak zwykle jest to gra w golfa, więc obowiązują standardowe luki i wygrywa najkrótsza odpowiedź w bajtach!
Ciekawostka z teorii liczb:
Największą znaną liczbą pierwszą, która nie jest Mersenne Prime, jest 19249 * 2^13018586 + 1
tak naprawdę liczba Proth!