Since */ and q: are an inverse pair, sdiv4 =: (*//.~ (* */@:%&:<: ]) ~.)@q: sdiv5 =: (*//.~ (* %&<: ]) ~.)&.q:
(sdiv -: sdiv5) !20x 1 On Tue, Jun 10, 2014 at 3:33 PM, Roger Hui <[email protected]> wrote: > sdiv =: */ @: (((^>:) %&<: [)/) @: (__&q:) > sdiv1 =: */ @ (%~/) @: <: @ ((^>:)/\) @ (__&q:) > sdiv2 =: (((^>:) */@:%&:<: [)/) @: (__&q:) > sdiv3 =: __ ((^>:) */@:%&:<: [)/@q: ] > sdiv4 =: (*//.~ (* */@:%&:<: ]) ~.)@q: > > (sdiv -: sdiv1) !20x > 1 > (sdiv -: sdiv2) !20x > 1 > (sdiv -: sdiv3) !20x > 1 > (sdiv -: sdiv4) !20x > 1 > > > > > On Tue, Jun 10, 2014 at 1:54 PM, Henry Rich <[email protected]> wrote: > >> Shorter version: >> >> sdiv =. */@(%~/)@:<:@((^ >:)/\)@(__&q:) >> >> spdiv =. (-~ sdiv) >> spdiv 12 >> 16 >> >> Henry Rich >> On 6/10/2014 3:09 PM, Henry Rich wrote: >> >>> NB. sum of divisors >>> sdiv =. (*/) @: (((^ >:) %&<: [)/) @: (__&q:) >>> NB. sum of proper divisors >>> spdiv =. (-~ sdiv) >>> spdiv 12 >>> 16 >>> >>> Henry Rich >>> >>> On 6/10/2014 1:18 PM, Roger Hui wrote: >>> >>>> From http://www.jsoftware.com/jwiki/Essays/Divisors >>>>> >>>> >>>> div=: /:~ @: , @: > @: (*/&.>/) @: ((^ i.@>:)&.>/) @: (__&q:) >>>> div 360 >>>> 1 2 3 4 5 6 8 9 10 12 15 18 20 24 30 36 40 45 60 72 90 120 180 360 >>>> >>>> >>>> >>>> >>>> >>>> On Tue, Jun 10, 2014 at 10:10 AM, Jon Hough <[email protected]> >>>> wrote: >>>> >>>> My attempt at making a verb that finds the total of all proper >>>>> divisors of >>>>> an integer seems to work. >>>>> e.g. if n = 12, the sum of proper divisors is 1 +2 +3+4+6 = 16 (note >>>>> 12 is >>>>> not included) >>>>> This verb is actually equal to the "sigma function" minus n.Wikipedia >>>>> explanation: http://en.wikipedia.org/wiki/Divisor_function >>>>> (I essentially used the equation for sigma_x(n) where x = 1) >>>>> my verb: >>>>> >>>>> sum =.(((*/@:-&1@:{.)%~(*/@:-&1@:({.^(1&+@:,@:}.))))@:(2&p:))-] >>>>> This seems ok, but is not aesthetically pleasing, and seems to be very >>>>> bracketty, and given that the mathematical equation is pretty concise >>>>> I am >>>>> surprised the J verb is so long. If anyone knows a nicer way of doing >>>>> this >>>>> I would be grateful to see it. >>>>> 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 >>> >>> ---------------------------------------------------------------------- >> For information about J forums see http://www.jsoftware.com/forums.htm >> > > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
