Class PrimeGapTest

java.lang.Object
de.tilman_neumann.jml.primes.PrimeGapTest
All Implemented Interfaces:
SieveCallback

public class PrimeGapTest
extends java.lang.Object
implements SieveCallback
Find primes with relatively large prime gaps, say ratios p(i)/p(i-1) > p(k)/p(k-1) for all k > i. Bertrand’s postulate states that there is a prime in any interval [n, 2n]. Legendre's conjecture says that there is at least one prime in any interval (n^2, (n+1)^2). But for not too small i, the true maximum ratio p(i)/p(i-1) is much smaller than that. The main purpose of this class is to find the following rational sequence: Numerators are A277718 = "Bounding prime for the first k-Ramanujan prime." Denominators are A209407 = "Primes p(i) such that p(i+1)/p(i) > p(k+1)/p(k) for all k>i" Bounds are taken from Christian Axler, Thomas Leßmann: "An explicit upper bound for the first k-Ramanujan prime" 2018, https://arxiv.org/pdf/1504.05485.pdf, and the proof procedure has been derived from comments by Charles Greathouse IV. in A209407. A few results: 1. Testing all primes below 1e11 allows us to prove the first 87 sequence elements. 2. Trudgian's bound is not satisfied at a(75) ? 3. Trudgian's bound seems to be the one of most practical relevance; the transition point between Trudgian's bound and Axler/Leßmann's bound is at approximately e^131.1687 = 9.24363...*10^56.
  • Nested Class Summary

    Nested Classes
    Modifier and Type Class Description
    static class  PrimeGapTest.StackElement  
  • Constructor Summary

    Constructors
    Constructor Description
    PrimeGapTest​(long limit)  
  • Method Summary

    Modifier and Type Method Description
    static void main​(java.lang.String[] args)  
    void processPrime​(long prime)  
    void run()  

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • PrimeGapTest

      public PrimeGapTest​(long limit)
  • Method Details

    • run

      public void run()
    • processPrime

      public void processPrime​(long prime)
      Specified by:
      processPrime in interface SieveCallback
    • main

      public static void main​(java.lang.String[] args)