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)
.
Running the tests
To run the tests run the command go test
from within the exercise directory.
If the test suite contains benchmarks, you can run these with the -bench
flag:
go test -bench .
Keep in mind that each reviewer will run benchmarks on a different machine, with
different specs, so the results from these benchmark tests may vary.
For more detailed information about the Go track, including how to get help if
you're having trouble, please visit the exercism.io Go language page.
Source
Problem 4 at Project Euler 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.