Here's something I wrote for Slashdot a while back:
To square any two-digit number X, decide what number N it will take to raise or lower X to P, the nearest multiple of 10. Add the opposite of N to X to get Q, multiply P times Q, and add N^2 to the result. For instance:
67 * 67 = (67 + 3) * (67 - 3) + (3 * 3) = 70 * 64 + 9 = 4489
The hard part is 70 * 64, but if you teach yourself to ignore the zero at the end of the 70 and multiply from left to right, it sounds like this:
"Seven sixes make forty-two, times ten makes four hundred and twenty. Seven fours make twenty-eight, plus four hundred and twenty makes four hundred and forty-eight, times ten makes forty-four hundred and eighty, plus three squared--that's nine--makes forty-four hundred and eighty-nine."
Presto, you've figured out the answer in less time than it takes to say it. Note: don't be discouraged if you forget what number you needed to add at the end, or what number you were originally squaring; they're going to drop out of your short-term memory storage until you practice enough.
Here's an easier one, 52 * 52:
52 * 52 = (52 + 2) * (52 - 2) + (2 * 2) = 54 * 50 + 4 = 2704
Numbers ending in 4 and 6 are the hardest, because you've got to add 16.
86 * 86 = (86 + 4) * (86 - 4) + (4 * 4) = 90 * 82 + 16 = 7396
Numbers ending in 1 are easy:
71 * 71 = (71 + 1) * (71 - 1) + (1 * 1) = 72 * 70 + 1 = 5041
... and numbers ending in 5 are trivial:
45 * 45 = (45 + 5) * (45 - 5) + (5 * 5) = 50 * 40 + 25 = 2025
This is math that the average fourth-grader can handle ... can you?