I like the ( p: i. p:^:_1 y ) technique. That will certainly be an improvement on creating an array of all numbers less than the number in question.
Here is a tacit version (a bit messier than the explicit one) sumPrimes=: +/@:p:@i.@(p:inv) On Wed, Apr 30, 2014 at 3:56 AM, Don Guinn <[email protected]> wrote: > The choice as to which part of the gerund chooses has to be made for each > number. Use rank to let it process each number separatery. > > getPrime=. ((*&0)`(*&1)@.(1&p:))"0 NB. If not prime returns 0, if prime > returns original number. > getPrime 17 18 19 > 17 0 19 > > "Best" is a judgement and depends on the situation and person making it. I > like: > > sum_primes=:3 : '+/p:i.p:^:_1 y' > sum_primes 20 > 77 > > > On Tue, Apr 29, 2014 at 9:22 AM, Jon Hough <[email protected]> wrote: > > > This question comes in two parts. > > Statement of problem I am trying to solve: > > Get the sum of primes less than a given number. > > Question (1):What is the best way to do this? > > What I am attempting now is to use gerunds and the p: verb.Essentially I > > want to add all the numbers in an array if they are primes. > > This is what I have so far: > > getPrime=. (*&0)`(*&1)@.(1&p:) NB. If not prime returns 0, if prime > > returns original number. > > I will then +/ through the returned array.getPrime works for a single > > number. But whenever I try to use a 1-d array as the noun I get a "rank > > error".I am not sure how to fix this. > > Question (2): How do I fix the above error? Even if my method is not a > > very good way to solve the original problem I would still like to know > why > > I doesn't work. > > Regards. > > ---------------------------------------------------------------------- > > For information about J forums see http://www.jsoftware.com/forums.htm > > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
