HOW TO RETURN square.digit.sum n: PUT 0 IN sum WHILE n>0: PUT n mod 10 IN digit PUT sum + digit ** 2 IN sum PUT floor (n/10) IN n RETURN sum HOW TO REPORT happy n: PUT {} IN seen WHILE n not.in seen: INSERT n IN seen PUT square.digit.sum n IN n REPORT n=1 HOW TO RETURN next.happy n: PUT n+1 IN n WHILE NOT happy n: PUT n+1 IN n RETURN n PUT 0 IN n FOR i IN {1..8}: PUT next.happy n IN n WRITE n/