total = 0 d = new dict var sum for n = 1 to 100 million - 1 { sum = n do { if sum < 1000 and d@sum != undef { sum = d@sum break } c = sum sum = 0 for digit = integerDigits[c] sum = sum + digit^2 } while (sum != 89) and (sum != 1) if (n < 1000) d@n = sum if (sum == 89) total = total + 1 } println[total]