Thanks, that's a great solution. I've got this set up:
list 3 : '0 0-.~~.(,#\\.p:i.y),.,+/\\.p:i.y' list 4 1 2 2 5 3 10 4 17 1 3 2 8 3 15 1 5 2 12 1 7 The left item is the number of primes needed to get the sum which is the right item. I'm trying to filter out any rows where the right item is not prime. Before, when I wasn't counting the number needed to get the sum, i.e. I just had a list, I was using (1&p: # ]) to filter the non-prime values out. But now with the extra rank I'm not quite sure how I can achieve the same thing. So the desired result of 'list 4' is: list 4 1 2 2 5 4 17 1 3 1 5 1 7 On 16 Sep 2011, at 18:53, Roger Hui wrote: > Prefixes of suffixes. Very neat. > > <\\. 'abcde' > ┌─┬──┬───┬────┬─────┐ > │a│ab│abc│abcd│abcde│ > ├─┼──┼───┼────┼─────┤ > │b│bc│bcd│bcde│ │ > ├─┼──┼───┼────┼─────┤ > │c│cd│cde│ │ │ > ├─┼──┼───┼────┼─────┤ > │d│de│ │ │ │ > ├─┼──┼───┼────┼─────┤ > │e│ │ │ │ │ > └─┴──┴───┴────┴─────┘ > > Suffixes of prefixes will also work. > > <\.\ 'abcde' > ┌─────┬────┬───┬──┬─┐ > │a │ │ │ │ │ > ├─────┼────┼───┼──┼─┤ > │ab │b │ │ │ │ > ├─────┼────┼───┼──┼─┤ > │abc │bc │c │ │ │ > ├─────┼────┼───┼──┼─┤ > │abcd │bcd │cd │d │ │ > ├─────┼────┼───┼──┼─┤ > │abcde│bcde│cde│de│e│ > └─────┴────┴───┴──┴─┘ > > > > ----- Original Message ----- > From: Marshall Lochbaum <[email protected]> > Date: Friday, September 16, 2011 10:44 > Subject: Re: [Jprogramming] Consecutive Numbers in List > To: Programming forum <[email protected]> > >> ; <@:(+/\)\. p:i.4 >> 2 5 10 17 3 8 15 5 12 7 >> >> applies +/ on prefixes of suffixes. >> >> Marshall >> >> On Fri, Sep 16, 2011 at 12:59 PM, Roger Hui <[email protected]> >> wrote: >>> Multiple applications of the infix x +/\ y does the trick. >>> >>> f=: >:@i.@# +/\&.> < >>> f 2 3 5 7 >>> ┌───────┬──────┬─────┬──┐ >>> │2 3 5 7│5 8 12│10 15│17│ >>> └───────┴──────┴─────┴──┘ >>> g=: ;@f >>> g 2 3 5 7 >>> 2 3 5 7 5 8 12 10 15 17 >>> >>> The results of f are the 1-, 2-, 3-, and 4-infix sums. >>> Razing the whole thing gets the desired result. >>> >>> >>> >>> ----- Original Message ----- >>> From: David Vaughan <[email protected]> >>> Date: Friday, September 16, 2011 9:49 >>> Subject: [Jprogramming] Consecutive Numbers in List >>> To: Programming forum <[email protected]> >>> >>>> I'm trying to get a list of the sum of all possible consecutive >>>> numbers. >>>> E.g. >>>> >>>> for p:i.4, I want a list: >>>> >>>> 2 0 0 0 >>>> 2 3 0 0 >>>> 2 3 5 0 >>>> 2 3 5 7 >>>> 3 5 7 0 >>>> 5 7 0 0 >>>> 7 0 0 0 >>>> 3 5 0 0 >>>> >>>> I then do +/"1 to get the sum of each row. My problem is that >>>> I'm only getting consecutive numbers that start on p:0 or >> end on >>>> the last value, so it misses out loads in between. In the >>>> example above I get all but the last row. This is what I >> have so far: >>>> >>>> list=:3 :'(+/"1@>{\p:i.y),+/"1@>{\.p:i.y' >>>> list 10 >>>> 2 5 10 17 28 41 58 77 100 129 129 127 124 119 112 101 88 71 >> 52 29 >>>> >>>> Also I was wondering if there was a way to streamline something >>>> like that because I'm doing +/"1@>{\.p:i.y twice basically, but >>>> with \. changed to \ > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
