12345678910111213141516171819202122 |
- #!/usr/bin/ruby
- #
- ## https://rosettacode.org/wiki/Happy_numbers
- #
- func happy(n) is cached {
- static seen = Hash();
- return true if n.is_one;
- return false if seen.has_key(n);
- seen{n} = 1;
- happy(n.digits »**» 2 -> sum)
- }
- var count = 0;
- { |i|
- happy(i) ? say i : next;
- ++count == 8 && break;
- } * Inf;
|