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