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.

A219696 Numbers k such that the trajectory of 3k + 1 under the '3x + 1' map reaches k.

Original entry on oeis.org

1, 2, 4, 8, 10, 14, 16, 20, 22, 26, 40, 44, 52, 106, 184, 206, 244, 274, 322, 526, 650, 668, 790, 866, 976, 1154, 1300, 1438, 1732, 1780, 1822, 2308, 2734, 3238, 7288
Offset: 1

Views

Author

Robert C. Lyons, Nov 25 2012

Keywords

Comments

This sequence seems complete; there are no other terms <= 10^9. - T. D. Noe, Dec 03 2012
If the 3x+1 step is replaced with (3x+1)/2, the sequence becomes {1, 2, 4, 8, 10, 14, 20, 22, 26, 40, 44, 206, 244, 650, 668, 866, 1154, 1822, 2308, ...}. - Robert G. Wilson v, Jan 13 2015
From Andrew Slattery, Aug 03 2023: (Start)
For most terms k, the trajectory of 3k + 1 reaches 310 or the trajectory of 310 reaches k.
For the rest of the terms k, the trajectory of 3k + 1 reaches 22 or the trajectory of 22 reaches k.
With the exception of k = 1, k is reached after S steps,
where S = c*8 + d*13 + e*44 + f*75, with c, d, e and f in {0, 1, 2}; in particular, S is in {8, 13, 8+8, 8+13, 13+13, 44, 75, 44+44, 75+13+13, 75+44, 75+75}. (End)

Examples

			For k = 4, the Collatz trajectory of 3k + 1 is (13, 40, 20, 10, 5, 16, 8, 4, 2, 1), which includes 4; thus, 4 is in the sequence.
For k = 5, the Collatz trajectory of 3k + 1 is (16, 8, 4, 2, 1), which does not include 5; thus, 5 is not in the sequence.
		

Crossrefs

Programs

  • Haskell
    a219696 n = a219696_list !! (n-1)
    a219696_list = filter (\x -> collatz'' x == x) [1..] where
       collatz'' x = until (`elem` [1, x]) a006370 (3 * x + 1)
    -- Reinhard Zumkeller, Aug 11 2014
    
  • Mathematica
    Collatz[n_] := NestWhileList[If[EvenQ[#], #/2, 3 # + 1] &, n, # > 1 &]; Select[Range[10000], MemberQ[Collatz[3 # + 1], #] &] (* T. D. Noe, Dec 03 2012 *)
  • PARI
    a006370(n) = if(n%2==0, n/2, 3*n+1)
    is(n) = my(x=3*n+1); while(1, x=a006370(x); if(x==n, return(1), if(x==1, return(0)))) \\ Felix Fröhlich, Jun 10 2021
  • Python
    def ok(n):
        if n==1: return [1]
        N=3*n + 1
        l=[N, ]
        while True:
            if N%2==1: N = 3*N + 1
            else: N/=2
            l+=[N, ]
            if N<2: break
        if n in l: return 1
        return 0 # Indranil Ghosh, Apr 22 2017
    

Extensions

Initial 1 from Clark R. Lyons, Dec 02 2012