Jeśli potrzebujesz przeszukać tylko pierwszych 100 liczb pierwszych, po prostu utwórz posortowaną tabelę tych liczb pierwszych i przeprowadź wyszukiwanie binarne. Spowoduje to przejście do jednej liczby pierwszej lub do miejsca między dwoma, a także sprawdzenie, która z nich jest bliżej.
Edycja: Biorąc pod uwagę rozkład liczb pierwszych w tym zakresie, prawdopodobnie można przyspieszyć działanie (odrobinę) za pomocą wyszukiwania interpolacyjnego - zamiast zawsze zaczynać od środka tabeli, użyj interpolacji liniowej, aby odgadnąć dokładniejszy punkt wyjścia. 100. liczba pierwsza powinna wynosić około 250 (według przypuszczeń - nie sprawdziłem), więc jeśli (na przykład) chciałbyś mieć najbliższą 50, zaczynasz około 1/5 swojej tablica zamiast w połowie. Możesz w zasadzie traktować liczby pierwsze jako od 1, więc po prostu podziel numer, który chcesz, przez największy w swoim zakresie, aby uzyskać domysły w punkcie wyjścia.
I upewnij się, że w przypadku więzów, wartość w LUT jest większym z dwóch kandydatów. Na przykład 4-> 5, a nie 3, tak aby 4.1 -> 4 -> 5. –