Re: "Substract one and add one" algorithm
- To: mathgroup at smc.vnet.net
- Subject: [mg59098] Re: "Substract one and add one" algorithm
- From: Bill Rowe <readnewsciv at earthlink.net>
- Date: Thu, 28 Jul 2005 02:28:20 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
On 7/27/05 at 1:25 AM, gilmar.rodriguez at nwfwmd.state.fl.us (Gilmar)
wrote:
>I want to build a function h[n] that does the following:
>For n even greater and equal than 4:
>Case 1: If m=n/2 is prime then h[n]={n/2,n/2}. Done.
>Case 2: If m =n/2 is not prime; let p[1]=n/2 -1 and q[1]=n/2+1.
>If both p[1], and q[1] are prime then, h[n]={p[1],q[1]}. Done.
>If either one or both p[1] and q[1] are not prime; let p[2]
>=p[1]-1, and q[2]=q[1]+1.
>If both p[2], and q[2] are prime then h[n]={p[2],q[2]}. Done.
>If either one or both p[2] and q[3] are not prime; let p[3]
>=p[2]-1, and q[3]=q[2]+1.
Here is a simple function which does what you described above
h[k_Integer] :=
Module[{p, q, f},
f[p_Integer, q_Integer] :=
If[PrimeQ[p] && PrimeQ[q], {p, q}, f[p - 1, q + 1]];
f[k/2, k/2]] /; k > 3 && EvenQ[k]
--
To reply via email subtract one hundred and four