Collatz Conjecture in Python
Calculate the number of steps to reach 1 using the Collatz conjecture
exercism fetch python collatz-conjecture
The Collatz Conjecture or 3x+1 problem can be summarized as follows:
Take any positive integer n. If n is even, divide n by 2 to get n / 2. If n is odd, multiply n by 3 and add 1 to get 3n + 1. Repeat the process indefinitely. The conjecture states that no matter which number you start with, you will always reach 1 eventually.
Given a number n, return the number of steps required to reach 1.
Starting with n = 12, the steps would be as follows:
Resulting in 9 steps. So for input n = 12, the return value would be 9.
The Collatz Conjecture is only concerned with strictly positive integers, so your solution should raise a
ValueError with a meaningful message if given 0 or a negative integer.
Note that, when trying to submit an exercise, make sure the solution is in the
For example, if you're submitting
bob.py for the Bob exercise, the submit command would be something like
exercism submit <path_to_exercism_dir>/python/bob/bob.py.
For more detailed information about running tests, code style and linting, please see the help page.
An unsolved problem in mathematics named after mathematician Lothar Collatz https://en.wikipedia.org/wiki/3x_%2B_1_problem
Submitting Incomplete Solutions
It's possible to submit an incomplete solution so you can see how others have completed the exercise.