Fine approach.  I've before taken this route:

   factors =: [: */&> [: { [: <@powers"1 [: |: 2&p:

   powers =: {. ^ i.@:>:@:{:

   2 p: 360  NB. prime ,: count
2 3 5
3 2 1

   (powers L:_1) 2 3 ; 3 2 ; 5 1   [   boxdraw_j_ 1
+-------+-----+---+
|1 2 4 8|1 3 9|1 5|
+-------+-----+---+


   factors 360    NB. typically raveled.
 1   5
 3  15
 9  45

 2  10
 6  30
18  90

 4  20
12  60
36 180

 8  40
24 120
72 360


On 10/03/2017 08:00 AM, programming-requ...@forums.jsoftware.com wrote:
Date: Mon, 2 Oct 2017 15:14:42 -0700
From: Roger Hui<rogerhui.can...@gmail.com>
To: Programming forum<programm...@jsoftware.com>
Subject: Re: [Jprogramming] (no subject)
Message-ID:
        <camz_i_ay4dirb6vvgokazotxugaeqchq7ksidjbd0pjidtk...@mail.gmail.com>
Content-Type: text/plain; charset="UTF-8"

http://code.jsoftware.com/wiki/Essays/Divisors

What you have been asking for are computations on all possible subsets.
When dealing with all possible subsets, start with the boolean matrix
#:@i.@(2&^)@#
  .  You can then do B +/ .* x for all sums or B */ . (^~) x for all
products.  Combinations are not the way to go because m comb n will get you
the indices for the subsets of size m, whereas you want subsets of size 0,
1, ..., n.

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

Reply via email to