Eine Proth-Nummer , benannt nach François Proth, ist eine Zahl, die ausgedrückt werden kann als
N = k * 2^n + 1
Dabei k
ist eine ungerade positive ganze Zahl und n
ist eine positive ganze Zahl, so dass 2^n > k
. Lassen Sie uns ein konkreteres Beispiel verwenden. Nehmen Sie 3. 3 ist eine Proth-Nummer, weil es als geschrieben werden kann
(1 * 2^1) + 1
und 2^1 > 1
ist zufrieden. 5 Ist auch eine Proth-Nummer, weil sie geschrieben werden kann als
(1 * 2^2) + 1
und 2^2 > 1
ist zufrieden. 7 ist jedoch keine Proth-Nummer, da die einzige Möglichkeit ist, sie in das Formular N = k * 2^n + 1
einzutragen
(3 * 2^1) + 1
und 2^1 > 3
ist nicht zufrieden.
Ihre Herausforderung ist recht einfach: Sie müssen ein Programm oder eine Funktion schreiben, die anhand einer positiven Ganzzahl bestimmt, ob es sich um eine Proth-Zahl handelt oder nicht. Sie können Eingaben in jedem vernünftigen Format vornehmen und sollten einen Wahrheitswert ausgeben, wenn es sich um eine Proth-Zahl handelt, und einen falschen Wert, wenn dies nicht der Fall ist. Wenn Ihre Sprache hat, jede „Proth Zahl - Erfassungs“ -Funktionen Sie können sie verwenden.
Testen Sie IO
Hier sind die ersten 46 Proth-Nummern bis 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
Jede andere gültige Eingabe sollte einen falschen Wert ergeben.
Wie üblich ist dies Codegolf, daher gelten Standardlücken, und die kürzeste Antwort in Bytes gewinnt!
Zahlentheorie Fun-Fact-Randnotiz:
Die größte bekannte Primzahl, die keine Mersenne-Primzahl ist 19249 * 2^13018586 + 1
, ist eine Proth-Zahl!