A182972 Numerators of positive rationals < 1 arranged by increasing sum of numerator and denominator then by increasing numerator.
1, 1, 1, 2, 1, 1, 2, 3, 1, 3, 1, 2, 4, 1, 3, 1, 2, 3, 4, 5, 1, 5, 1, 2, 3, 4, 5, 6, 1, 3, 5, 1, 2, 4, 7, 1, 3, 5, 7, 1, 2, 3, 4, 5, 6, 7, 8, 1, 5, 7, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 3, 7, 9, 1, 2, 4, 5, 8, 10, 1, 3, 5, 7, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 1, 5, 7, 11, 1, 2, 3, 4, 6, 7, 8, 9, 11, 12, 1, 3, 5, 7, 9, 11
Offset: 1
Examples
Positive fractions < 1 listed by increasing sum of numerator and denominator, and by increasing numerator for equal sums: 1/2 1/3 1/4 2/3 1/5 1/6 2/5 3/4 1/7 3/5 1/8 2/7 4/5 1/9 3/7 1/10 2/9 3/8 4/7 5/6 1/11 5/7 1/12 2/11 3/10 4/9 5/8 6/7 1/13 3/11 5/9 1/14 2/13 4/11 7/8 1/15 3/13 5/11 7/9 1/16 2/15 3/14 4/13 5/12 6/11 7/10 8/9 1/17 5/13 7/11 1/18 2/17 3/16 4/15 5/14 6/13 7/12 8/11 9/10 1/19 3/17 7/13 9/11 (this is A182972/A182973).
References
- S. Cook, Problem 511: An Enumeration Problem, Journal of Recreational Mathematics, Vol. 9:2 (1976-77), 137. Solution by the Problem Editor, JRM, Vol. 10:2 (1977-78), 122-123.
- R. K. Guy, Unsolved Problems in Number Theory (UPINT), Section D11.
Links
- Reinhard Zumkeller, Table of n, a(n) for n = 1..10000
- Paul Yiu, Recreational Mathematics, 24.3.1 Appendix: Two enumerations of the rational numbers in (0,1), page 633.
- Index entries for sequences related to enumerating the rationals
Crossrefs
Programs
-
Haskell
a182972 n = a182972_list !! (n-1) a182972_list = map fst $ concatMap q [3..] where q x = [(num, den) | num <- [1 .. div x 2], let den = x - num, gcd num den == 1] -- Reinhard Zumkeller, Jul 29 2014
-
Maple
t1:=[]; for n from 2 to 40 do t1:=[op(t1),1/(n-1)]; for i from 2 to floor((n-1)/2) do if gcd(i,n-i)=1 then t1:=[op(t1),i/(n-i)]; fi; od: od: t1;
-
Mathematica
t1={}; For[n=2, n <= 40, n++, AppendTo[t1, 1/(n-1)]; For[i=2, i <= Floor[(n-1)/2], i++, If[GCD[i, n-i] == 1, AppendTo[t1, i/(n-i)]]]]; t1 // Numerator // Rest (* Jean-François Alcover, Jan 20 2015, translated from Maple *)
-
Pascal
program a182972; var num,den,n: longint; function gcd(i,j: longint):longint; begin repeat if i>j then i:=i mod j else j:=j mod i; until (i=0) or (j=0); if i=0 then gcd:=j else gcd:=i; end; begin num:=1; den:=1; n:=0; repeat repeat inc(num); dec(den); if num>=den then begin inc(den,num); num:=1; end; until gcd(num,den)=1; inc(n); writeln(n,' ',num); until n=100000; end.
-
Python
from itertools import count, islice from math import gcd def A182972_gen(): # generator of terms return (i for n in count(2) for i in range(1,1+(n-1>>1)) if gcd(i,n-i)==1) A182972_list = list(islice(A182972_gen(),10)) # Chai Wah Wu, Aug 28 2023
Extensions
Corrected by William Rex Marshall, Aug 12 2013
Comments