Your solution works only because the list isn't too long, and the initial 13| (same as 13 |/) made them all small enough that you can do the */ without losing precision. But if the list were longer:
13 | */ 13 | 10 # 19 29 59 79 89 109 119 139 149 179 199 0 If it makes it more understandable, use explicit defn: (4 : '13|x*y') / 19 29 59 79 89 109 119 139 149 179 199 4 "Multiplication mod m" means m|x*y, multiply, then take the remainder of division by m. On Mon, Sep 18, 2017 at 11:37 AM, Skip Cave <s...@caveconsulting.com> wrote: > Yes, one of the Quora answer posts for this challenge pointed this out as > well, so I tried that approach. Not being too competent with the use of & > @, I tried: > > 13|*/13|/19 29 59 79 89 109 119 139 149 179 199 > > 4 > > > I got the answer, but I need a course on the use of @ and & in order to > tighten up my code. > > > Skip > > > Skip Cave > Cave Consulting LLC > > On Mon, Sep 18, 2017 at 12:47 PM, Roger Hui <rogerhui.can...@gmail.com> > wrote: > > > This particular problem can be solved without resort to extended > > precision. Use multiplication mod 13, that is, find the remainder at > each > > step rather than waiting until the end: > > > > 13&|@* / 19 29 59 79 89 109 119 139 149 179 199 > > 4 > > > > > > On Mon, Sep 18, 2017 at 10:00 AM, Skip Cave <s...@caveconsulting.com> > > wrote: > > > > > People posting problems on Quora are typically expecting an explicit > > > algebraic formula solution to their problem, though they never > > explicitly > > > state that requirement. The posted Quora problems often involve very > > large > > > numbers, which the poster expects will prevent solutions from using a > > > calculator or computer program to solve. In most cases, J's extended > > > precision arithmetic can handle those large numbers quite handily. > > > > > > Typical Quora problem: > > > How would you calculate the remainder of {19 × 29 × 59 × 79 × 89 × 109 > × > > > 119 × 139 × 149 × 179 × 199} divided by 13? > > > <https://www.quora.com/How-would-you-calculate-the- > > > remainder-of-19-%C3%97-29-%C3%97-59-%C3%97-79-%C3%97-89-%C3% > > > 97-109-%C3%97-119-%C3%97-139-%C3%97-149-%C3%97-179-%C3%97- > > > 199-divided-by-13> > > > > > > My answer: > > > > > > Using the J programming language (Jsoftware.com) > > > > > > 13|*/19 29 59 79 89 109 119 139 149 179 199x > > > > > > 4 > > > > > > So the answer is 4 > > > > > > > > > Skip Cave > > > Cave Consulting LLC > > > > > > On Mon, Sep 18, 2017 at 6:17 AM, Raul Miller <rauldmil...@gmail.com> > > > wrote: > > > > > > > That has been characteristic of Project Euler but Quora Challenges > are > > > > new to me. > > > > > > > > Anyways, if the problem expects to answers work with precisions well > > > > beyond measurable limits, that should be stated as a part of the > > > > problem. > > > > > > > > Thanks, > > > > > > > > -- > > > > Raul > > > > > > > > > > > > On Sun, Sep 17, 2017 at 2:05 PM, Skip Cave <s...@caveconsulting.com> > > > > wrote: > > > > > The fact that the problem is a Quora challenge is exactly the > point. > > > It's > > > > > like if someone asks your for the square root of 75976307044. Yes, > > > there > > > > is > > > > > a manual process that one can use to compute the square root. But > why > > > > spend > > > > > all that time when one can type %:75976307044 or use a hand-held > > > > > calculator, and get the answer instantly. As an engineer, speed and > > > > > accuracy are more important than going through a complicated manual > > > > process > > > > > to get that same answer. > > > > > > > > > > I post lots of these J solutions on Quora to remind folks of that > > fact. > > > > > It's not that I'm against knowing the manual approach to the > > solutions. > > > > > It's just that the more tools we have to make hard problems easier, > > the > > > > > better we can solve even harder problems. > > > > > > > > > > Skip Cave > > > > > Cave Consulting LLC > > > > > > > > > > On Sun, Sep 17, 2017 at 12:28 PM, Erling Hellenäs < > > > > erl...@erlinghellenas.se> > > > > > wrote: > > > > > > > > > >> Strange things happen here. It works but give incorrect results. I > > > just > > > > >> changed F to lower case to put it through my tests. Not sure what > > > might > > > > >> happen here. I have J 8.04 on this machine. 64 bit. > > > > >> I never doubted that p: was good. I just thought that since it > was a > > > > Quora > > > > >> challenge that using p: would not be a good idea, since the > > algorithm > > > > used > > > > >> in p: is not known to the audience. It also seemed like some kind > > of > > > > >> cheating, like using a subroutine someone else wrote to solve half > > the > > > > >> problem. > > > > >> Well, I also thought p: would have to generate the array of primes > > for > > > > >> each call, but it's obviously not the case. There is a formula > which > > > > does > > > > >> the trick? Or a hash table of primes? > > > > >> > > > > >> thru=: <. + >:@>. i.@- <. > > > > >> > > > > >> biggap=: {~ 0 1 - [: (i. <./) 2 -/\ ] > > > > >> > > > > >> f=: [: thru/ 1 _1 + [: biggap <./ >. >./ <. thru&.(p:inv) > > > > >> > > > > >> s=: 10 f 100 > > > > >> > > > > >> s > > > > >> > > > > >> 20 21 22 > > > > >> > > > > >> >./90 91 92 93 94 95 96 = s > > > > >> > > > > >> |length error: scriptd > > > > >> > > > > >> | >./90 91 92 93 94 95 96 =s > > > > >> > > > > >> |[-5] j:\j64-803-user\projects\quoraraul.ijs > > > > >> > > > > >> inv > > > > >> > > > > >> ^:_1 > > > > >> > > > > >> > > > > >> Cheers, > > > > >> > > > > >> Erling > > > > >> > > > > >> On 2017-09-17 17:38, Raul Miller wrote: > > > > >> > > > > >>> Yes. :) > > > > >>> > > > > >>> When J provides a mechanism for something it is usually worth > > trying. > > > > >>> Sometimes you can write something faster, but usually J's > approach > > > > >>> will be useful. > > > > >>> > > > > >>> For example, in this case, consider this approach: > > > > >>> > > > > >>> thru=: <. + >:@>. i.@- <. > > > > >>> biggap=: {~ 0 1 - [: (i. <./) 2 -/\ ] > > > > >>> F=: [: thru/ 1 _1 + [: biggap <./ >. >./ <. thru&.(p:inv) > > > > >>> > > > > >>> There will be cases where another approach could be more > efficient, > > > > >>> but it performs reasonably well. > > > > >>> > > > > >>> Thanks, > > > > >>> > > > > >>> > > > > >> ------------------------------------------------------------ > > > ---------- > > > > >> 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 > > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm