Wenn Sie nur in den ersten 100 Primzahlen suchen müssen, erstellen Sie einfach eine sortierte Tabelle dieser Primzahlen und führen eine binäre Suche durch. Dies wird dich entweder zu einer Primzahl oder zu einem Punkt zwischen zwei bringen, und du prüfst, welcher davon näher ist.
Edit: Angesichts der Verteilung der Primzahlen in diesem Bereich könnten Sie wahrscheinlich beschleunigen (ein winziges bisschen) mit einer Interpolation Suche - anstatt immer in der Mitte der Tabelle, verwenden lineare Interpolation zu erraten ein genauerer Startpunkt. Die 100. Primzahl sollte ungefähr bei 250 liegen (bei einer Schätzung - ich habe das nicht überprüft), also wenn Sie zum Beispiel die am nächsten zu 50 haben wollten, würden Sie ungefähr 1/5 des Weges hinein starten das Array statt halbwegs. Sie können die Primzahlen so behandeln, dass sie bei 1 beginnen, also teilen Sie einfach die Nummer, die Sie wollen, durch die größte in Ihrem Bereich, um den Startpunkt zu schätzen.
Und stellen Sie sicher, dass der Wert in der lut im Falle der Beziehungen ist die größere der beiden Kandidaten. Zum Beispiel, 4-> 5, nicht 3, so dass 4.1 -> 4 -> 5. –