[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

[QUIZ] Happy Numbers (#93

James Gray

9/1/2006 1:02:00 PM

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.rub...

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.

53 Answers

William Crawford

9/1/2006 1:12:00 PM

0

James Gray wrote:

> 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.

-Boggles-

Okay, I'm feeling stupid here. What MAKES that number be happy? The
nearest I can find is that if it's an infinite loop, it isn't happy. If
it's not a loop, and resolves to 1 eventually. (It has to resolve to 1,
or it's be a loop.) It's happy.

Is that right?

--
Posted via http://www.ruby-....

James Gray

9/1/2006 1:30:00 PM

0

On Sep 1, 2006, at 8:12 AM, William Crawford wrote:

> Okay, I'm feeling stupid here. What MAKES that number be happy? The
> nearest I can find is that if it's an infinite loop, it isn't
> happy. If
> it's not a loop, and resolves to 1 eventually. (It has to resolve
> to 1,
> or it's be a loop.) It's happy.
>
> Is that right?

Sounds right on to me.

James Edward Gray II

Peter Hickman

9/1/2006 1:42:00 PM

0

Doesn't this mean that all numbers are happy?


Chris Hulan

9/1/2006 1:49:00 PM

0


Peter Hickman wrote:
> Doesn't this mean that all numbers are happy?

Do it by hand for 3...

James Gray

9/1/2006 1:54:00 PM

0

On Sep 1, 2006, at 8:41 AM, Peter Hickman wrote:

> Doesn't this mean that all numbers are happy?

Here's some further reading for those still confused:

http://mathworld.wolfram.com/HappyN...

James Edward Gray II

Peter Hickman

9/1/2006 2:38:00 PM

0

Problem is that from the quiz it states that you either get a 1 or an
infinite loop and that an unhappy number is "obvious". Which is a sign
that something has not been explained clearly. Given that the Wolfram
page was clearer than the quiz at to what constitutes happy don't be
surprised if some people go off down the wrong path.


William Crawford

9/1/2006 2:42:00 PM

0

James Gray wrote:
> On Sep 1, 2006, at 8:41 AM, Peter Hickman wrote:
>
>> Doesn't this mean that all numbers are happy?
>
> Here's some further reading for those still confused:
>
> http://mathworld.wolfram.com/HappyN...
>
> James Edward Gray II

Wow. Lots of strategy on that page. Almost like cheating ;)

On a side note... Did anyone NOT calculate 3 by hand? Heh.

--
Posted via http://www.ruby-....

Jacob Fugal

9/1/2006 2:53:00 PM

0

On 9/1/06, William Crawford <wccrawford@gmail.com> wrote:
> On a side note... Did anyone NOT calculate 3 by hand? Heh.

/me sheepishly raises his hand

I didn't use my hands, just my head. :(

Jacob Fugal

knaveofdiamonds

9/1/2006 3:00:00 PM

0

One note of advice - the operator to use is actually ** not ^ as might
be expected:

irb> 7 ^ 2 # Gives 5
irb> 7 ** 49 # Gives 49

Cheers,
Roland

Paul Lutus

9/1/2006 3:39:00 PM

0

knaveofdiamonds wrote:

> One note of advice - the operator to use is actually ** not ^ as might
> be expected:
>
> irb> 7 ^ 2 # Gives 5
> irb> 7 ** 49 # Gives 49

I think you meant 7 ** 2 = 49, whereas
7 ** 49 = 256923577521058878088611477224235621321607

But, since these are integers, we are better off computing n * n,
not n ** 2. There's really no point (in time efficiency) to explicitly
raising n to a power p unless n is not an integer or p is relatively large.

--
Paul Lutus
http://www.ara...