# A fun math problem

Here is a question from the Mathematical Association of America’s American Mathematics Competitions blog (which I found through this constraint programming blog):

Let x and y be two-digit integers such that y is obtained by reversing the digits of x. The integers x and y satisfy x^2 – y^2 = m^2 for some positive integer m. What is x + y + m?

This is easily solved using Solver Foundation’s constraint programming solver. The OML model is simple:

```Model[
Decisions[
Integers[0, 9], x1, x2, y1, y2
],
Decisions[Integers[10, 100], x, y],

Constraints[
x == 10 * x1 + x2,
y == 10 * y1 + y2,
y == 10 * x2 + x1,
x * x - y * y == m * m,
theAnswer == x + y + m
]
]```

Update 10/4/2011: reader Bruno Repetto noted the following:

• In the declaration
Decisions[Integers[0, 9], x1, x2, y1, y2],
the range should be Integers[1, 9].  If 0 is included, this declaration alone could allow for one of the numbers x or y to be single-digit.
• In the declaration
Decisions[Integers[10, 100], x, y],
the range should be Integers[10, 99], as x and y are restricted to be two-digit integers.

Of course, given the constraints of the problem, the first and second declarations will work together to ensure that the x and y numbers are only two-digit integers, but it doesn’t hurt that the declarations be tighter.