I tried this in simple J. It should work in elementary school (as long as it is correct)
f=: 13 :'(>:i.x) */>:i.y' g=: 13 :'(i.x<.y)<:/i.x>.y' all=: 13 :'+/,((x<.y) g x>.y) * (x<. y) f x >.y' 2 f 3 1 2 3 2 4 6 3 f 2 1 2 2 4 3 6 3 f 3 1 2 3 2 4 6 3 6 9 2 g 3 1 1 1 0 1 1 3 g 2 1 1 1 0 1 1 3 g 3 1 1 1 0 1 1 0 0 1 2 all 3 16 3 all 2 16 3 all 3 25 93 all 93 9689050 93 all 94 10099924 94 all 94 10108760 NB. This could be in computer science if it ever gets in elementary school. f ([: >: [: i. [) */ [: >: [: i. ] g ([: i. <.) <:/ [: i. >. all [: +/ [: , (<. g >.) * <. f >. Linda ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
