Finding a Pythagorean triple $a^2 + b^2 = c^2$ with $a+b+c=40$

Let's say you're asked to find a Pythagorean triple $a^2 + b^2 = c^2$ such that $a + b + c = 40$. The catch is that the question is asked at a job interview, and you weren't expecting questions about Pythagorean triples.

It is trivial to look up the answer. It is also trivial to write a computer program that would find the answer. There is also plenty of material written about the properties of Pythagorean triples and methods for generating them. However, none of this would be of any help during a job interview.

How would you solve this in an interview situation?


Solution 1:

Assuming you do have a pen and paper, you could substitute $c = 40 - a - b$ into the first equation to get

$$a^2 + b^2 = (40 - a - b)^2 = a^2 + b^2 + 1600 - 80(a + b) + 2ab.$$

Rewriting this equation, you get

$$a + b - 20 = \frac{ab}{40}.$$

From this it follows that $ab$ has to be a multiple of $40$, i.e., one of them is a multiple of $5$. That narrows it down to only a few options...


If that's still too much brute-force, you could also note that $a + b > 20$ from the above equation, and $a + b < 27$, since $c$ has to be the largest of the three. This leaves only the three pairs

$$\{(5,16),(10,16),(15,8)\}.$$

Looking at the earlier equation, you see the third pair is the right one.

Solution 2:

The general pythagorean triple can be written (up to swapping $a$ and $b$) as $$a=2kuv$$ $$b=k(u^2-v^2)$$ $$ c=k(u^2+v^2)$$ where $k,u,v$ are positive integers, $u,v$ are relatively prime with different parity and $u\geq v$. For $a+b+c=40$, then, you get the condition $2k(u^2+uv)=40$, so you need $u^2+uv=u(u+v)$ to be a factor of $20$. Since $u,v$ have different parity, and they are positive, you know $u+v>1$ is odd, so $u+v=5$.

Given that $u\geq v$, that yields $u=4,v=1$ and $u=3,v=2$. But $u=3$ isn't possible, since $3$ is not a factor of $20$. So The only solution is $(u,v)=(4,1)$ and therefore the only solution is $k(15,8,17)$ which you can see must have $k=1$, and you are done - the only solution is $(15,8,17)$. And $(8,15,17)$, if you count that as different.

For the more general problem, $a+b+c=2n$ (the sum of a Pythagorean triple is always even) this amounts to factoring $n=kuw$ with the following conditions:

  • $k,u,w$ are positive in
  • $w$ is odd
  • $u<w<2u$

Given such a solution, you get a triple (by setting $v=w-u$:) $$a=2ku(w-u)$$ $$b=kw(2u-w)$$ $$c=k(2u^2+w^2-2uw)$$

And this gives all such triples (modulo swapping $a$ and $b$.)

Listing these amounts to first listing the set of possible values of $w$, which can be any odd factors of $n$ such that $1<w<\sqrt{2n}$. Then find values of $u$ with $w/2<u<w$ and $uw|n$. Then set $k=n/uw$ and you have your triple $(k,u,w)$ from which you can compute an $(a,b,c)$.

(If you want to allow $ab=0$, the change the above to $u\leq w < 2u$. Then $u=v=1$ and $k=n$ is always a solution.)

Solution 3:

Neat question. If one were to allow for answers in $\mathbb{Z}$, you can have as many as 18 solutions. $$\begin{align} &(65,72,-97) &&(90,56,-106) &&&(140,48, -148) \\ &(240,44,-244) &&(440, 42, -442) &&&(840, 41, -841) \\ &(45,200,-205) &&(50,120,-130) &&&(60,80,-100) \end{align}$$

$$\begin{align} &***(8,15,17)*** &&(24,-10, 26) &&&(32,-60,68) \\ &(36,-160,164) &&(38,-360,362) &&&(39,-760,761) \\ &(-120,35,125) &&(-40,30,50) &&&(0,20,20) \end{align}$$

Solution: $$\begin{cases} a^2+b^2=c^2 &&&&&&(1)\\a+b+c=40 &&&&&&(2)\end{cases}$$

$$(2) \ \text{for c into} \ (1)\to $$ $$\begin{align} a^2+b^2&=[40-(a+b)]^2 &&\implies \\ a^2+b^2&=1600-80(a+b)+(a+b)^2 &&\implies \\ 0&=1600-80(a+b)+2ab &&\implies \\ 0&=ab-40(a+b)+800 &&\implies \\ 800 &= ab - 40(a+b) + 1600 &&\implies \\ 800 = d_1 \cdot d_2&= (a-40)(b-40)&&\implies \\ &\Bigg{\Downarrow} \\ \end{align}$$

$$\begin{cases} a=40+d_1 \\ b=40+d_2 \\ c =-40-(d_1+d_2)\end{cases} $$

The sides of the triangle are now defined parametrically in terms of an arbitrary choice of divisors of $800$. Here, for any choice of a divisor-pair $(d_1,d_2)$, switching the order doesn't produce a new solution, (other times it can), but there is an additional $(-d_1,-d_2)$ solution.

Since, $$\begin{align} 800=2^{\color{red}{5}} \cdot 5^{\color{red}{2}} &\implies (\color{red}{5}+1)(\color{red}{2}+1)=18 \ \text{divisors} \\ &\implies 9 \ \text{divisor-pairs} \\ &\implies 18 \ \text{divisor-pairs including negatives} \end{align}$$

we expect $18$ solutions overall, evaluated above.