Zastrzeżenie : Nie jestem ekspertem w teorii liczb.
Krótka odpowiedź : jeśli jesteś gotów do przyjęcia „rozsądnych liczbowo teoretyczne przypuszczenia”, to możemy powiedzieć, czy jest najlepszym w przedziale w czasie . Jeśli nie jesteś skłonny przyjąć takiego założenia, istnieje piękny algorytm dzięki Odlyzko, który osiąga , i uważam, że jest to najlepiej znany.[ n , n + Δ ]p o l y l o g (n)n1 / 2 + O ( 1 )
Bardzo pomocny link z dużą ilością świetnych informacji o ściśle powiązanym problemie : projekt PolyMath dotyczący deterministycznych algorytmów wyszukiwania liczb pierwszych .
Długa odpowiedź :
Jest to trudny problem, aktywny obszar badań i wydaje się być ściśle związany z trudną kwestią ograniczania luk między liczbami pierwszymi. Twój problem jest moralnie bardzo podobny do problemu znalezienia liczby pierwszej między a deterministycznie, który był ostatnio przedmiotem projektu PolyMath . (Jeśli chcesz naprawdę zagłębić się w te pytania, ten link jest doskonałym miejscem do rozpoczęcia.) W szczególności nasze najlepsze algorytmy dla obu problemów są zasadniczo takie same.2 nn2 n
W obu przypadkach najlepszy algorytm zależy w dużej mierze od wielkości przerw między liczbą pierwszą. W szczególności, jeśli jest takie, że zawsze istnieje liczba pierwsza między n i n + f ( n ) (i f ( n ) można obliczyć efektywnie), to zawsze możemy znaleźć liczbę pierwszą w czasie p o l y l o g ( n ) ⋅ f ( n ) w następujący sposób. Aby ustalić, czy istnieje liczba pierwsza między n i n +fa( n )nn + f( n )fa( n )p o l y l o g (n)⋅f( n )n , najpierw sprawdź, czy Δ ≥ f ( n ) . Jeśli tak, wyślij tak. W przeciwnym razie po prostu iteruj przez liczby całkowite między n i n + Δ i przetestuj każdą z nich pod kątem pierwszeństwa i odpowiedz tak, jeśli znajdziesz liczbę pierwszą, a nie inaczej. (Można to zrobić deterministycznie, dlatego deterministyczne znalezienie liczby pierwszej między n a 2 n jest tak ściśle związane z ustaleniem, czy liczba pierwsza występuje w określonym przedziale.)n + ΔΔ ≥ f( n )nn + Δn2 n
p o l y l o g (n)fa( n ) = O ( log2)n )n ≥ 31 / logn
fa( n ) ≤ O ( n--√)fa( n ) ≤ O ( n--√logn )no ( 1 )
O˜( n0,525)n0,025