The x: is a verb which converts e to an extended integer. Probably makes the exponentation be performed by repeated squaring.
On Tue, Jun 9, 2009 at 6:39 PM, <[email protected]> wrote: > In the following code: > > pp=: 3 : 0 > for_e. 2+i.>.2^.y do. > m=. e <....@%: y > if. y=m^x: e do. m,e return. end. > end. > '' > ) > > I understand that: > > if. y=m^x: e do. m,e return. end. > > will exit when the input y equals the m^x: and display m,e > > 1. Where does the "x" come from. I do not supply it as a > left-hand-side argument. > 2. what is the significance of "x:" > > Thanks for the explanation. > > A comment: > > In reading about the "perfect power" there was a statement I > found that (I think) ... > said that the only exponents I should test were those that > were prime. > > Is it cheaper time-wise to just do all the exponents from 2 > to >. 2 ^. y or would > it be faster to prune the for_e list so it only contains > primes. > > ----- Original Message Follows ----- > From: Roger Hui <[email protected]> > To: Programming forum <[email protected]> > Subject: Re: [Jprogramming] perfect power??? > Date: Mon, 08 Jun 2009 16:11:41 -0700 > > >Somewhere in the bowels of q: it calls 1&p: > >before launching into the much more expensive > >factoring routine. > > > >It seems to me there should be a straightforward > >determination of whether a number y is a perfect power: > >just try all possible exponents from 2 to 2 >....@^. y . > >For example, for 2^607x the exponents are from 2 to 607, > >which is not many exponents to try. Thus: > > > >pp=: 3 : 0 > > for_e. 2+i.>.2^.y do. > > m=. e <....@%: y > > if. y=m^x: e do. m,e return. end. > > end. > > '' > >) > > > > pp 81 > >9 2 > > pp 128 > >2 7 > > pp 125 > >5 3 > > pp 2^100x > >1125899906842624 2 > > pp <:2^607x > > > > 6!:2 'pp <: 2^607x' > >0.159832 > > > >pptest=: *...@#@pp > > > > > > > > > >----- Original Message ----- > >From: Raul Miller <[email protected]> > >Date: Monday, June 8, 2009 15:32 > >Subject: Re: [Jprogramming] perfect power??? > >To: Programming forum <[email protected]> > > > >> On Mon, Jun 8, 2009 at 6:13 PM, > >> <[email protected]> wrote: > >> > From what I am read in this article, determing if a > >> > number is a "Perfect Power" should be > >> > a lot faster. Either that or I am totally > mis-reading > >> > the article. > >> > >> Determining if a number is a perfect power is certainly > >> faster than some algorithm for determining if a number > >> is prime. > >> > >> But do you have any reason to believe J uses that > >> algorithm, in its implementation of q? > >> > >> That said, 1 p: will determine whether or not a number > >> is prime, and might be faster than 1 = # q: in some > >> cases. > >----------------------------------------------------------- > >----------- 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
