First of all, we know that the man's age was divisible by 8 one year ago. So, let's list a few numbers that are divisible by 8, and work from there.
8, 16, 24, 32, 40, 48, 56, 72, 80, 88, 96 are all divisible by 8.
We also know that his current age is the square of his son's age. So we can check the numbers that follow the multiples of eight to see if they'll work.
The subsequent numbers, in order, are
9, 17, 25, 33, 41, 49, 57, 73, 81, 89, 97
Now, let's list which ones are squares, meaning a number multiplied by itself is equal to anther number.
9 is the square of 3
25 is the square of 5
49 is the square of 7
81 is the square of 9
Only these four will work, but right now, ANY of these four will work. Let's use a little science to narrow it down.
It is scientifically improbable for a 9-year-old to have a 3-year-old son, so we'll rule that one out. It's also highly unlikely that an 81-year-old has a 9-year-old son, so we'll cross that off the list, as well.
This leaves a 25-year-old man with a 5-year-old son, and a 49-year-old man with a 7-year-old son, both of which are most likely.
At this point, you can choose whichever you'd like, or put down both as the answer.
The man and his son's present ages are either 25 and 5, or 49 and 7.