Hi, Thanks for the reply. That is essentially what I tried to do. "Multiply the number by 1 if it has remainder zero on division by 3 or 5, 1 otherwise. Then sum.". But my J is clunky, ugly and doesn't look like other peoples' J.
> Date: Tue, 8 Apr 2014 11:39:07 -0400 > From: [email protected] > To: [email protected] > Subject: Re: [Jprogramming] Euler Project Problem 1 > > Hey Jon, > > I remember seeing this done by someone before. They went about it like this: > generate numbers 0 through 1000 > a = i.1000 > create a "mask" list of 0s and 1s where the numbers are divisible by 3 and 5 > <insert J statement that does this...> > (pseudo code: b = a % 3 OR a % 5) > multiply the mask list and the number list together > and > add all the numbers > c = +/(a * b) > > Excuse me for my bad J :) I keep learning parts of it but then end up > not using it for weeks... > > Enjoy, > > Lee > > On Tue, Apr 8, 2014 at 11:30 AM, Jon Hough <[email protected]> wrote: > > Euler Project #1 is:If we list all the natural numbers below 10 that are > > multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is > > 23. Find the sum of all the multiples of 3 or 5 below 1000. > > In C/Java I could easily do something like: > > int total =0; > > for (int counter = 0; counter < 1000; counter ++ ){if(counter %3 = 0 || > > counter %5 = 0){ total += counter;}} > > return counter; > > > > The main features here being the if statement and the for-loop. > > Obviously in J things need to be done differently. Here is my first attempt: > > div3 =. 0&(="0)@:( 3&|) NB. is residue zerodiv5 =. 0&(="0)@:( 5&|) > > div3or5 =. div3"0 +."0 div5"0 > > dummy =. 1&*"0 NB. You'll see why I need this... > > result =. dummy * div3or5 > > NB. final result is: > > +/result i.1000 > > > > I used dummy because I wanted to do something like multiply the value of y > > by "div3or5 y" so only multiples of 3 or 5 would be nonzero. > > Before attempting this problem I assumed it could be done in only one line > > and am pretty unhappy by my long solution. Any help explaining where I have > > gone wrong, or why my attempt at a fork is silly would be appreciated. > > Thanks in advance, > > Jon > > > > > > ---------------------------------------------------------------------- > > 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
