Bertrands Postulat besagt, dass es für jede ganze Zahl n ≥ 1 mindestens eine Primzahl p gibt, so dass n <p ≤ 2n ist . Um diesen Satz für n <4000 zu verifizieren, müssen wir nicht 4000 Fälle prüfen: Der Landau-Trick besagt, dass es ausreicht, dies zu prüfen
2, 3, 5, 7, 13, 23, 43, 83, 163, 317, 631, 1259, 2503, 5003
sind alle prime. Da jede dieser Zahlen kleiner als das Doppelte ihrer Vorgängerzahl ist, enthält jedes Intervall {y: n <y ≤ 2n} mindestens eine dieser Primzahlen.
Diese Folge von Zahlen sind die Bertrand-Primzahlen (OEIS A006992) und sie sind wie folgt definiert:
a(1) = 2
a(n) = largest prime below 2a(n-1)
Herausforderung
Implementieren Sie diese Sequenz. Du darfst schreiben
- eine Funktion oder ein Programm, die / das mit einigen n ein (n) (0 oder 1 indiziert) zurückgibt ,
- eine Funktion oder ein Programm, die / das mit einigen n die ersten n (oder n-1 oder n + 1 ) Einträge dieser Sequenz zurückgibt ,
- Eine unendliche Liste oder ein Stream oder Generator oder ein ähnliches Äquivalent in Ihrer Sprache.
Fx.ØØ
ist so nah ... Funktioniert für alles obenn > 2
.