This DBP code gives you all the options:
sync on: sync rate 0
sync
dim ages(72,4)
dim atmp(1,4)
counter = 1
for n1 = 1 to 72
for n2 = n1 to 72
for n3 = n2 to 72
if n1 * n2 * n3 = 72
ages(counter,1) = n1
ages(counter,2) = n2
ages(counter,3) = n3
ages(counter,4) = n1 + n2 + n3
` Order ages within array element
if ages(counter,1) < ages(counter,2)
tmp = ages(counter,1)
ages(counter,1) = ages(counter,2)
ages(counter,2) = tmp
endif
if ages(counter,2) < ages(counter,3)
tmp = ages(counter,2)
ages(counter,2) = ages(counter,3)
ages(counter,2) = tmp
endif
inc counter,1
endif
next n3
cls
text 5,5, str$(n1 / 72.0 * 100.0,2) + " (" + str$(counter) + ")"
sync
next n2
next n1
` Delete repetitions
for n1 = 1 to 71
for n2 = n1 + 1 to 72
if ages(n1,1) = 0
ages(n1,4) = 999
exit
endif
if ages(n1,1) = ages(n2,1) and ages(n1,2) = ages(n2,2) and ages(n1,3) = ages(n2,3)
ages(n1,4) = 999
exit
endif
next n2
cls
text 5,5, "Deleting duplicates..." + str$(n1 / 72.0 * 100.0, 2)
sync
next n1
cls
counter = 1
while ages(Counter,1) > 0
if ages(counter,4) <> 999
text 5, 5 + (counter2 * 20), str$(ages(counter,1)) + "," + str$(ages(counter,2)) + "," + str$(ages(counter,3)) + " : " + str$(ages(counter,4))
inc counter2, 1
endif
inc counter, 1
endwhile
sync
wait key
Some could be ruled out as ridiculous (e.g 1,1,72), although the puzzle doesn't say this is impossible.
So is there something "American" about this that makes it workable? Such as something about house numbers?