Hi all,

OK, based on the understanding I've gained so far, here and on the other
thread (re filtering), I thought I'd try a couple of little tests, see
how I get along.

I've got two here, the first is a quasi trivial programming challenge
(it was originally given for programmable calculators) and is fairly
easy in concept.  The second one is the so-called "happy numbers" which
I found quite simple to do, but I may still ask for some style feedback.

First off, the "challenge".  It's quite simple in concept, and I know
how to do all the separate bits in J, but I'm having trouble stringing
it all coherently.  I get "length errors", which makes me suspect rank.

The challenge:
We define a 'special' number as one which returns itself when subjected
to the following operation:  first split it into its digits, then
perform the following operation on each digit x:   x! + x 
Then sum the result.
Required to find all special numbers between 1 and 100000 (I think there
are two)

Here's what I got so far.  Not nearly brave enough to put it on one line
yet.

digits =. 10&#.inv  NB.  No probs here
fp1 =. ! + ]        NB.  I think that's fine too
spsum =. +/ @ fp1 @ digits  NB.  Works... BUT...
special=. ]=spsum
(#~ special) >:i.1000000  NB. That's the idea, but it's wrong

I think the problem is with spsum, above.
it will not process arrays correctly, although it's fine with single
numbers.

And if anyone feels like depriving me of sleep, please write down the
single line expression...



   


----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to