OFFSET
1,1
COMMENTS
Notation: Suppose that r>=1. If p is a prime, then p' denotes the least prime > r*p (i.e., in Mathematica code, p' = NextPrime[r*p]). Define d(1,1) = 2. and q(1,1) = d(1,1)'/d(1,1) . For k >= 2, define d(1,k) = least prime p > d(1,k-1) such that p'/p < d(1,k-1)'/d (1,k-1), and define q(1,k) = p'/p . This finishes defining (row 1 of V(r)) = (d(1,k)'/d(1,k)), where k>=1. For n>=2, define d(n,1) = least prime p not in {d(h,k): h = 1..n-1, k>=1}, and for k>=2 define d(n,k) = least prime p > d(n,k-1) such that p'/p < d(n,k-1)'/d(n,k-1), and define q(n,k) = p'/p. This finishes defining all rows of V(r). The denominator array of V(r) is the array (d(n,k): n>=1, k>=1).
Every odd prime occurs exactly once in the denominator array of V(1), and every prime occurs exactly once in the corresponding array of numerators.
EXAMPLE
Rows of the decreasing (1)-prime-fractions array V(1):
(row 1) = 3/2 > 7/5 > 13/11 > 19/17 > 31/29 > ...
(row 2) = 5/3 > 11/7 > 17/13 > 23/19 > 37/31 > ...
(row 3) = 29/23 > 53/47 > 59/53 > 67/61 > 79/73 > ...
Corner of the denominator array:
2 5 11 17 29 41 59
3 7 13 19 31 43 67
23 47 53 61 73 83 131
89 139 181 241 283 337 359
113 199 211 293 317 409 479
MATHEMATICA
lows := {First /@ #, Most[FoldList[Plus, 1, Length /@ #]]} &[
Split[Rest[FoldList[Min, +\[Infinity], #]]]] &;
unSortedComplement[list1_, list2_] :=
DeleteCases[list1, Apply[Alternatives, list2]];
r = 1; (* User; put your r>=1 here. *)
rh = {};
rStart = Map[NextPrime[r*#]/# &[Prime[#]] &, Range[150]];
AppendTo[rh, lows[rStart][[1]]]; While[Last[rh] =!= {},
AppendTo[rh, Reverse[#[[lows[Denominator[#]][[2]]]]] &[
Reverse[lows[unSortedComplement[rStart, Flatten[rh]]][[1]]]]]];
rh
Denominator[rh]
Grid[Most[Denominator[rh]], Frame -> All]
(* Peter J. C. Moses, Sep 01 2025 *)
CROSSREFS
KEYWORD
AUTHOR
Clark Kimberling, Aug 25 2025
STATUS
approved
