Just add 1 to it:
   i.&.(_1&p:) 1+>.2^.y


----- Original Message -----
From: [email protected]
Date: Wednesday, June 10, 2009 9:16
Subject: Re: [Jprogramming] question about Roger Hui - perfect power code
To: Programming forum <[email protected]>

> Hum.......
> 
>    2+i.>.2^. 
> 10000                                          
>                    
> 2 3 4 5 6 7 8 9 10 11 12 13 14 15
> 
>    i.&.(_1&p:) >.2^. 
> 10000                                  
>                   
> 2 3 5 7 11 13
> 
> which is OK
> 
>    2+i.>.2^. 
> 100                                            
>                    
> 2 3 4 5 6 7 8
> 
>    i.&.(_1&p:) >.2^. 
> 100                                    
>                   
> 2 3 5
> 
> A problem:  missed 7 which is a prime.
> 
> 
> 
> ----- Original Message Follows -----
> From: Roger Hui <[email protected]>
> To: Programming forum <[email protected]>
> Subject: Re: [Jprogramming] question about Roger Hui -
> perfect power code
> Date: Tue, 09 Jun 2009 23:44:42 -0700
> 
> >> 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.
> >
> >If only prime powers are required you can use
> >i.&.(_1&p:) >.2^.y  instead of  2+i.>.2^.y .
> >In that case you should probably rename the 
> >function to ppp (perfect prime power).
> >
> >
> >
> >----- Original Message -----
> >From: [email protected]
> >Date: Tuesday, June 9, 2009 16:40
> >Subject: [Jprogramming] question about Roger Hui - perfect
> >power code To: Programming forum
> ><[email protected]>
> >
> >> 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

Reply via email to