**[Happy Numbers](https://github.com/phansch/Projects/blob/master/Numbers/happy_numbers.rb)** - A happy number is defined by the following process. Starting with any positive integer, replace the number by the sum of the squares of its digits, and repeat the process until the number equals 1 (where it will stay), or it loops endlessly in a cycle which does not include 1. Those numbers for which this process ends in 1 are happy numbers, while those that do not end in 1 are unhappy numbers. Display an example of your output here. Find first 8 happy numbers.

**[Number Names](https://github.com/phansch/learn_ruby_solutions/blob/master/15_in_words/in_words.rb))** - Show how to spell out a number in English. You can use a preexisting implementation or roll your own, but you should support inputs up to at least one million (or the maximum value of your language's default bounded integer type, if that's less). *Optional: Support for inputs other than positive integers (like zero, negative integers, and floating-point numbers).*

**[Number Names](https://github.com/phansch/learn_ruby_solutions/blob/master/15_in_words/in_words.rb)** - Show how to spell out a number in English. You can use a preexisting implementation or roll your own, but you should support inputs up to at least one million (or the maximum value of your language's default bounded integer type, if that's less). *Optional: Support for inputs other than positive integers (like zero, negative integers, and floating-point numbers).*

Classic Algorithms

-----------------

**[Collatz Conjecture](https://github.com/phansch/Projects/blob/master/Classic%20Algorithms/collatz.rb)** - Start with a number *n > 1*. Find the number of steps it takes to reach one using the following process: If *n* is even, divide it by 2. If *n* is odd, multiply it by 3 and add 1.

**Sorting** - Implement two types of sorting algorithms: Merge sort and bubble sort.

**Sorting ([Bubble Sort](https://github.com/phansch/Projects/blob/master/Classic%20Algorithms/bubblesort.rb), [Merge Sort](https://github.com/phansch/Projects/blob/master/Classic%20Algorithms/mergesort.rb)** - Implement two types of sorting algorithms: Merge sort and bubble sort.

**Closest pair problem** - The closest pair of points problem or closest pair problem is a problem of computational geometry: given *n* points in metric space, find a pair of points with the smallest distance between them.