Sha256: 5753125163758693e6207ad2b40ad393738d71ecc60a15eaef5b6ffb1d0a3b3c

Contents?: true

Size: 1.73 KB

Versions: 183

Compression:

Stored size: 1.73 KB

Contents

# Palindrome Products

Detect palindrome products in a given range.

A palindromic number is a number that remains the same when its digits are
reversed. For example, `121` is a palindromic number but `112` is not.

Given the definition of a palindromic number, we define a palindrome _product_
to be the product `c`, such that `a * b = c`, where `c` is a palindromic number and
 `a` and `b` are integers (possibly, but _not_ necessarily palindromic numbers).

For example, the palindromic number 9009 can be written as the palindrome
product: `91 * 99 = 9009`.

It's possible (and indeed common) for a palindrome product to be the product
of multiple combinations of numbers. For example, the palindrome product `9` has
the factors `(1, 9)`, `(3, 3)`, and `(9, 1)`.

Write a program that given a range of integers, returns the smallest and largest
palindromic product within that range, along with all of it's factors.

## Example 1

Given the range `[1, 9]` (both inclusive)...

The smallest product is `1`. It's factors are `(1, 1)`.
The largest product is `9`. It's factors are `(1, 9)`, `(3, 3)`, and `(9, 1)`.

## Example 2

Given the range `[10, 99]` (both inclusive)...

The smallest palindrome product is `121`. It's factors are `(11, 11)`.
The largest palindrome product is `9009`. It's factors are `(91, 99)` and `(99, 91)`.

## Hints
- The most simple way to check if a number is a palindrome is quite slow. To speed things up, you could implement a slighly more complex algorithm which uses mutable state.

## Source

Problem 4 at Project Euler [http://projecteuler.net/problem=4](http://projecteuler.net/problem=4)

## Submitting Incomplete Solutions
It's possible to submit an incomplete solution so you can see how others have completed the exercise.

Version data entries

183 entries across 183 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/fsharp/exercises/palindrome-products/README.md
trackler-2.2.1.179 tracks/fsharp/exercises/palindrome-products/README.md
trackler-2.2.1.178 tracks/fsharp/exercises/palindrome-products/README.md
trackler-2.2.1.177 tracks/fsharp/exercises/palindrome-products/README.md
trackler-2.2.1.176 tracks/fsharp/exercises/palindrome-products/README.md
trackler-2.2.1.175 tracks/fsharp/exercises/palindrome-products/README.md
trackler-2.2.1.174 tracks/fsharp/exercises/palindrome-products/README.md
trackler-2.2.1.173 tracks/fsharp/exercises/palindrome-products/README.md
trackler-2.2.1.172 tracks/fsharp/exercises/palindrome-products/README.md
trackler-2.2.1.171 tracks/fsharp/exercises/palindrome-products/README.md
trackler-2.2.1.170 tracks/fsharp/exercises/palindrome-products/README.md
trackler-2.2.1.169 tracks/fsharp/exercises/palindrome-products/README.md
trackler-2.2.1.167 tracks/fsharp/exercises/palindrome-products/README.md
trackler-2.2.1.166 tracks/fsharp/exercises/palindrome-products/README.md
trackler-2.2.1.165 tracks/fsharp/exercises/palindrome-products/README.md
trackler-2.2.1.164 tracks/fsharp/exercises/palindrome-products/README.md
trackler-2.2.1.163 tracks/fsharp/exercises/palindrome-products/README.md
trackler-2.2.1.162 tracks/fsharp/exercises/palindrome-products/README.md
trackler-2.2.1.161 tracks/fsharp/exercises/palindrome-products/README.md
trackler-2.2.1.160 tracks/fsharp/exercises/palindrome-products/README.md