THe way I managed to deal with registering a single button push was to pause the loop using "while" so that a press and release only accounts for a single loop - if you do not do this, a single button press could end up adding to the Total variable # of times depending on how long you held the button down (e.g. one button depression, regardless of length, results in only one registering of an event and one operation on Total).
If a number repeats, reset Total to zero and clear the display
If a non-perfect square is taken (e.g. non-integer result), reset Total to zero and clear the display
If the running number sequence contains the numbers 2, 10, and 14 in that order but not necessarily adjacent, then mark the puzzle as solved.