Challenges
Parent

+5
−0

# Background

Check out this video on the Collatz conjecture, also known as A006577.

If you don't know what this is, we're given an equation of $3x + 1$, and it is applied this way:

• If $x$ is odd, then $3x + 1$.
• If $x$ is even, then $\frac{x}{2}$.

This will send us in a loop of 4 → 2 → 1 → 4 → 2 → 1..., which got me into making this challenge.

# Challenge

Write a program that establishes the Collatz conjecture:

• Take input of a positive integer. This will be the $x$ of the problem.
• Read the background for how it works, or watch the video for further explanation.
• The result should be how many turns it would take before reaching $1$. There, the sequence stops.
• This is code-golf, so the shortest program in each language wins!

# Test Cases

From 1 to 10:

1  → 0  (1)
2  → 1  (2 → 1)
3  → 7  (3 → 10 → 5 → 16 → 8 → 4 → 2 → 1)
4  → 2  (4 → 2 → 1)
5  → 5  (5 → 16 → 8 → 4 → 2 → 1)
6  → 8  (6 → 3 → 10 → 5 → 16 → 8 → 4 → 2 → 1)
7  → 16 (7 → 22 → 11 → 34 → 17 → 52 → 26 → 13 → 40 → 20 → 10 → 5 → 16 → 8 → 4 → 2 → 1)
8  → 3  (8 → 4 → 2 → 1)
9  → 19 (9 → 28 → 14 → 7 → 22 → 11 → 34 → 17 → 52 → 26 → 13 → 40 → 20 → 10 → 5 → 16 → 8 → 4 → 2 → 1)
10 → 6  (10 → 5 → 16 → 8 → 4 → 2 → 1)


More of these can be found on OEIS. Thanks to @Shaggy for the link!

Why does this post require moderator attention?
Why should this post be closed?

Post
+3
−0

# Python 3, 4842 39 bytes

Saved 6 bytes thanks to Hakerh400‭ in the comments

Saved another 3 bytes thanks to user in the comments

f=lambda n:n-1and-~f([n//2,3*n+1][n%2])


Try it online!

Why does this post require moderator attention?

42 bytes (1 comment)

# Comments on Collatz conjecture; Count the tries to reach $1$

39 bytes using ~- from Shaggy's answer and []
user‭ wrote about 1 month ago:
celtschk‭ wrote about 1 month ago:

Thanks, edited.

This community is part of the Codidact network. We have other communities too — take a look!