cp's OEIS Frontend

This is a front-end for the Online Encyclopedia of Integer Sequences, made by Christian Perfect. The idea is to provide OEIS entries in non-ancient HTML, and then to think about how they're presented visually. The source code is on GitHub.

A295511 The Schinzel-Sierpiński tree of fractions, read across levels.

Original entry on oeis.org

2, 2, 2, 3, 3, 2, 3, 7, 7, 5, 5, 7, 7, 3, 2, 5, 17, 13, 7, 11, 11, 5, 5, 11, 11, 7, 13, 17, 5, 2, 3, 11, 241, 193, 17, 29, 29, 13, 7, 17, 17, 11, 31, 43, 43, 13, 13, 43, 43, 31, 11, 17, 17, 7, 13, 29, 29, 17, 193, 241, 11, 3
Offset: 1

Views

Author

Peter Luschny, Nov 23 2017

Keywords

Comments

A conjecture of Schinzel and Sierpiński asserts that every positive rational number r can be represented as a quotient of shifted primes such that r = (p-1)/(q-1).
The function r -> [p, q] will be called the Schinzel-Sierpiński encoding of r if q is the smallest prime such that r = (p-1)/(q-1) for some prime p. In the case that no pair of such primes exists we set by convention p = q = 1.
The Schinzel-Sierpiński tree of fractions is the Euclid tree A295515 with root 1 and fractions represented by the Schinzel-Sierpiński encoding.

Examples

			The tree starts:
                                        2/2
                   2/3                                     3/2
         3/7                  7/5                 5/7                   7/3
   2/5       17/13     7/11        11/5     5/11       11/7     13/17        5/2
.
The numerators of the terms written as an array (the denominators are given by reversion of the arrays):
1: 2
2: 2, 3
3: 3, 7, 5, 7
4: 2, 17, 7, 11, 5, 11, 13, 5
5: 3, 241, 17, 29, 7, 17, 31, 43, 13, 43, 11, 17, 13, 29, 193, 11
		

References

  • E. Dijkstra, Selected Writings on Computing, Springer, 1982, p. 232.

Crossrefs

Programs

  • Sage
    def EuclidTree(n): # with root 1
        def DijkstraFusc(m):
            a, b, k = 1, 0, m
            while k > 0:
                if k % 2 == 1: b += a
                else: a += b
                k = k >> 1
            return b
        DF = [DijkstraFusc(k) for k in (2^(n-1)..2^n)]
        return [DF[j]/DF[j+1] for j in (0..2^(n-1)-1)]
    def SchinzelSierpinski(l):
        a, b = l.numerator(), l.denominator()
        p, q = 1, 2
        while q < 1000000000: # search limit
            r = a*(q - 1)
            if b.divides(r):
                p = r // b + 1
                if is_prime(p): return p/q
            q = next_prime(q)
        print("Search limit reached for ", l); return 0
    def SSETree(level):
        return [SchinzelSierpinski(l) for l in EuclidTree(level)]
    # With the imperfection that Sage reduces 2/2 automatically to 1.
    for level in (1..6): print(SSETree(level))