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.119 tracks/racket/exercises/collatz-conjecture/README.md
trackler-2.2.1.118 tracks/racket/exercises/collatz-conjecture/README.md
trackler-2.2.1.117 tracks/racket/exercises/collatz-conjecture/README.md
trackler-2.2.1.116 tracks/racket/exercises/collatz-conjecture/README.md
trackler-2.2.1.115 tracks/racket/exercises/collatz-conjecture/README.md
trackler-2.2.1.114 tracks/racket/exercises/collatz-conjecture/README.md
trackler-2.2.1.113 tracks/racket/exercises/collatz-conjecture/README.md
trackler-2.2.1.111 tracks/racket/exercises/collatz-conjecture/README.md
trackler-2.2.1.110 tracks/racket/exercises/collatz-conjecture/README.md
trackler-2.2.1.109 tracks/racket/exercises/collatz-conjecture/README.md
trackler-2.2.1.108 tracks/racket/exercises/collatz-conjecture/README.md
trackler-2.2.1.107 tracks/racket/exercises/collatz-conjecture/README.md
trackler-2.2.1.106 tracks/racket/exercises/collatz-conjecture/README.md
trackler-2.2.1.105 tracks/racket/exercises/collatz-conjecture/README.md
trackler-2.2.1.104 tracks/racket/exercises/collatz-conjecture/README.md
trackler-2.2.1.103 tracks/racket/exercises/collatz-conjecture/README.md
trackler-2.2.1.102 tracks/racket/exercises/collatz-conjecture/README.md
trackler-2.2.1.101 tracks/racket/exercises/collatz-conjecture/README.md