==> logic/children.s <== First, determine all the ways that three ages can multiply together to get 72: 72 1 1 (quite a feat for the bartender) 36 2 1 24 3 1 18 4 1 18 2 2 12 6 1 12 3 2 9 4 2 9 8 1 8 3 3 6 6 2 6 4 3 As the man says, that's not enough information; there are many possibilities. So the bartender tells him where to find the sum of the ages--the man now knows the sum even though we don't. Yet he still insists that there isn't enough info. This must mean that there are two permutations with the same sum; otherwise the man could have easily deduced the ages. The only pair of permutations with the same sum are 8 3 3 and 6 6 2, which both add up to 14 (the bar's address). Now the bartender mentions his "youngest"--telling us that there is one child who is younger than the other two. This is impossible with 8 3 3--there are two 3 year olds. Therefore the ages of the children are 6, 6, and 2. Pedants have objected that the problem is insoluble because there could be a youngest between two three year olds (even twins are not born exactly at the same time). However, the word "age" is frequently used to denote the number of years since birth. For example, I am the same age as my wife, even though technically she is a few months older than I am. And using the word "youngest" to mean "of lesser age" is also in keeping with common parlance. So I think the solution is fine as stated. In the sum-13 variant, the possibilities are: 11 1 1 10 2 1 9 3 1 9 2 2 8 4 1 8 3 2 7 5 1 7 4 2 7 3 3 6 6 1 6 5 2 6 4 3 The two that remain are 9 2 2 and 6 6 1 (both products equal 36). The final bit of info (oldest child) indicates that there is only one child with the highest age. This cancels out the 6 6 1 combination, leaving the childern with ages of 9, 2, and 2.