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.159 tracks/racket/exercises/collatz-conjecture/README.md
trackler-2.2.1.158 tracks/racket/exercises/collatz-conjecture/README.md
trackler-2.2.1.157 tracks/racket/exercises/collatz-conjecture/README.md
trackler-2.2.1.156 tracks/racket/exercises/collatz-conjecture/README.md
trackler-2.2.1.155 tracks/racket/exercises/collatz-conjecture/README.md
trackler-2.2.1.154 tracks/racket/exercises/collatz-conjecture/README.md
trackler-2.2.1.153 tracks/racket/exercises/collatz-conjecture/README.md
trackler-2.2.1.152 tracks/racket/exercises/collatz-conjecture/README.md
trackler-2.2.1.151 tracks/racket/exercises/collatz-conjecture/README.md
trackler-2.2.1.150 tracks/racket/exercises/collatz-conjecture/README.md
trackler-2.2.1.149 tracks/racket/exercises/collatz-conjecture/README.md
trackler-2.2.1.148 tracks/racket/exercises/collatz-conjecture/README.md
trackler-2.2.1.147 tracks/racket/exercises/collatz-conjecture/README.md
trackler-2.2.1.146 tracks/racket/exercises/collatz-conjecture/README.md
trackler-2.2.1.145 tracks/racket/exercises/collatz-conjecture/README.md
trackler-2.2.1.144 tracks/racket/exercises/collatz-conjecture/README.md
trackler-2.2.1.143 tracks/racket/exercises/collatz-conjecture/README.md
trackler-2.2.1.142 tracks/racket/exercises/collatz-conjecture/README.md
trackler-2.2.1.141 tracks/racket/exercises/collatz-conjecture/README.md
trackler-2.2.1.140 tracks/racket/exercises/collatz-conjecture/README.md