The J solution can be shortened by removing the >. .  Thus:

nplt=: p:^:_1        NB. #primes <  n
plt =: i.&.(p:^:_1)  NB.  primes <  n
nsp =: 3 : '+/ (nplt@(y&%) - [EMAIL PROTECTED]) plt %:y' " 0



----- Original Message -----
From: Roger Hui <[EMAIL PROTECTED]>
Date: Saturday, April 5, 2008 4:46
Subject: Re: [Jgeneral] How readable is J?
To: General forum <[email protected]>

> I have another comparison on a problem I worked on recently.
> http://www.jsoftware.com/jwiki/Essays/Semiprimes
> A semiprime is a number with exactly 2 (not necessarily distinct)
> prime factors.  
> 
> The number of semiprimes less than n can be computed as:
> nplt=: p:^:_1        NB. 
> #primes <  n
> plt =: i.&.(p:^:_1)  NB.  primes <  n
> nsp =: 3 : '+/ (nplt@(>.@(y&%)) - [EMAIL PROTECTED]) plt >.%:y' " 0
> 
> In the semiprime page in MathWorld
> http://mathworld.wolfram.com/Semiprime.html
> the solution for the number of semiprimes less than
> or equal to n is given as:
> 
> pi<sup>(2)</sup>(x)=sigma(k=1,pi(sqrt(n))) 
> [pi(n/p<sub>k</sub>-k+1]
> 
> I can not do the formula justice here; you have to look at
> it on that MathWorld webpage to see it properly laid out.
> 
> The derivation for the J computation is given as:
> It is possible to produce this list without testing each integer 
> i<n . 
> A semiprime can be written as a product of primes p*q where 
> p<:q .  
> p is necessarily less than >.%:n , and for each such p the 
> possible 
> primes q are those greater than or equal to p but less than 
> >.n%p . 
> 
> The MathWorld page doesn't give the derivation, but says:
> where pi(x) is the prime counting function and p_k is the 
> kth prime (R. G. Wilson V, pers. comm., Feb. 7, 2006; 
> discovered independently by E. Noel and G. Panos around 
> Jan. 2005, pers. comm., Jun. 13, 2006).
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to