Sha256: 961c576ca2f16d89bfb070ffba81f8279a716344f4f41a11dd62db9d167964b9

Contents?: true

Size: 1.53 KB

Versions: 78

Compression:

Stored size: 1.53 KB

Contents

# 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.

## Examples

Starting with n = 12, the steps would be as follows:

0. 12
1. 6
2. 3
3. 10
4. 5
5. 16
6. 8
7. 4
8. 2
9. 1

Resulting in 9 steps. So for input n = 12, the return value would be 9.

* * * *

For installation and learning resources, refer to the
[exercism Racket page](http://exercism.io/languages/racket).

You can run the provided tests through DrRacket, or via the command line.

To run the test through DrRacket, simply open the test file and click the 'Run' button in the upper right.

To run the test from the command line, run the test from the exercise directory with the following command:

```
raco test collatz-conjecture-test.rkt
```

which will display the following:

```
raco test: (submod "collatz-conjecture-test.rkt" test)
2 success(es) 0 failure(s) 0 error(s) 2 test(s) run
0
2 tests passed
```

## Source

An unsolved problem in mathematics named after mathematician Lothar Collatz [https://en.wikipedia.org/wiki/3x_%2B_1_problem](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.

Version data entries

78 entries across 78 versions & 1 rubygems

Version Path
trackler-2.2.1.139 tracks/racket/exercises/collatz-conjecture/README.md
trackler-2.2.1.138 tracks/racket/exercises/collatz-conjecture/README.md
trackler-2.2.1.137 tracks/racket/exercises/collatz-conjecture/README.md
trackler-2.2.1.136 tracks/racket/exercises/collatz-conjecture/README.md
trackler-2.2.1.135 tracks/racket/exercises/collatz-conjecture/README.md
trackler-2.2.1.134 tracks/racket/exercises/collatz-conjecture/README.md
trackler-2.2.1.133 tracks/racket/exercises/collatz-conjecture/README.md
trackler-2.2.1.132 tracks/racket/exercises/collatz-conjecture/README.md
trackler-2.2.1.131 tracks/racket/exercises/collatz-conjecture/README.md
trackler-2.2.1.130 tracks/racket/exercises/collatz-conjecture/README.md
trackler-2.2.1.129 tracks/racket/exercises/collatz-conjecture/README.md
trackler-2.2.1.128 tracks/racket/exercises/collatz-conjecture/README.md
trackler-2.2.1.127 tracks/racket/exercises/collatz-conjecture/README.md
trackler-2.2.1.126 tracks/racket/exercises/collatz-conjecture/README.md
trackler-2.2.1.125 tracks/racket/exercises/collatz-conjecture/README.md
trackler-2.2.1.124 tracks/racket/exercises/collatz-conjecture/README.md
trackler-2.2.1.123 tracks/racket/exercises/collatz-conjecture/README.md
trackler-2.2.1.122 tracks/racket/exercises/collatz-conjecture/README.md
trackler-2.2.1.121 tracks/racket/exercises/collatz-conjecture/README.md
trackler-2.2.1.120 tracks/racket/exercises/collatz-conjecture/README.md