Begin forwarded message:

> From: William.B.Henderson-Frost / Dartmouth.EDU (William B. Henderson- 
> Frost)
> Date: September 2, 2006 12:06:09 PM CDT
> To: submission / rubyquiz.com
> Subject: quiz 93 solution
> Reply-To: William.B.Henderson-Frost / Dartmouth.EDU (willhf)
>
> # William Henderson-Frost
> # Ruby-Quiz 93
>
> # This solution works for base ten numbers.
> # I look forward to seeing how others handle the different bases.
> # (googolplex ** googolplex) is a happy number =D
>
> class Integer
>
>   def happy?
>     n, found = self, []
>     loop do
>       found << n ; next_n = 0
>       n.to_s.scan(/./) { |i| next_n += i.to_i**2 } ; n = next_n
>       return found if n == 1
>       return false if found.index(n)
>     end
>   end
>
>   def Integer.happiest(limit)
>     num = 1
>     (1..limit).each { |n| num = n if n.happy? and n.happy?.size >  
> num.happy?.size }
>     num
>   end
>
> end
>
> #puts Integer.happiest(1000000)
> #puts (('9' * 975) + '421111').to_i.happy?
>
> puts 2.happy?                             #=>  false
> puts 78999.happy?.join(', ')       #=>  78999, 356, 70, 49, 97,  
> 130, 10