From: "Éric DUMINIL" Date: 2006-09-04T03:56:33+09:00 Subject: Re: [QUIZ SOLUTION] Happy Numbers (#93) Hi! I'd just like to post my isHappy? method: class Integer def isHappy? return to_s.split(//).collect{|digit| digit.to_i**2}.inject{|sum, n| sum + n }.isHappy? while self!=1 true rescue false end end puts 115485454654987986246476765451256546545241654555555555555555555555555555555555554125665146454122345444487.isHappy? true This method may return false negative (if happiness>maximum stack level), though I doubt no one will ever find one! Thanks for the quiz, Eric On Friday 01 September 2006 15:01, Ruby Quiz wrote: > The three rules of Ruby Quiz: > > 1. Please do not post any solutions or spoiler discussion for this quiz > until 48 hours have passed from the time on this message. > > 2. Support Ruby Quiz by submitting ideas as often as you can: > > http://www.rubyquiz.com/ > > 3. Enjoy! > > Suggestion: A [QUIZ] in the subject of emails about the problem helps > everyone on Ruby Talk follow the discussion. Please reply to the original > quiz message, if you can. > > -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- >=-=-= > > by Shane Emmons > > Write a program that tells whether a given integer is happy. A happy number > is found using the following process: Take the sum of the squares of its > digits, and continue iterating this process until it yields 1, or produces > an infinite loop. > > For example the number 7: > > 7^2 = 49 > 4^2 + 9^2 = 97 > 9^2 + 7^2 = 130 > 1^2 + 3^2 + 0^2 = 10 > 1^2 + 0^2 = 1 > > If a number is not happy than it is obviously unhappy. Now that you have > this program, what is the largest happy number you can find? What is the > happiest number between 1 and 1,000,000. I define the happiest number as > the smallest number that finds the most other happy numbers with it, i.e. 7 > found four other numbers (49, 97, 130, and 10) making it a rank 4 in > happiness. > > If you find all these examples trivial, write you program so that it will > find happy numbers in other bases such as base 2 or 16. From there you can > extend the program so that it finds happy bases (other than 2 and 4). A > happy bases is a base where all numbers are happy. Good luck.