I don't quite get the problem statement.

r =. (p+q)%2 is between p and q; so if p and q are CONSECUTIVE primes, r cannot be prime.

Henry Rich

On 5/12/2013 6:07 AM, Alan Stebbens wrote:
ProgrammingPraxis (at http://programmingpraxis.com/2013/05/10/mindcipher)
offered a problem asking, given p, q as two consecutive pairs of primes, if
(p+2)%2 could be prime.

Since both p & q (> 2) are prime, their sum is an even number and not
prime, but could the half of their sum be a prime?

I'm not much of a mathematician, but I figured I could brute-force an
approximation with J.

The gist below is my experiment showing that the answer is no, for the
consecutive pairs of primes in the set of the first million primes.  While
it might be possible for the larger primes, I'm thinking not - just by
induction.

Probably some of you could show a proof, but it was more fun for me to
cobble up this in J, and also demonstrate J to the non-J audience at
Programming Praxis (which has been mostly scheme, Haskell, python, ruby).

https://gist.github.com/aks/5563008

Here's my experiment:

    i. 20
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

    NB. generate the first 20 primes
    p: i. 20
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71

    NB. box up consecutive pairs of those primes
    (2 <\ ]) p: i. 20
┌───┬───┬───┬────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
│2 3│3 5│5 7│7 11│11 13│13 17│17 19│19 23│23 29│29 31│31 37│37 41│41 43│43
47│47 53│53 59│59 61│61 67│67 71│
└───┴───┴───┴────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘

    NB. sum up each pair of primes
    +/ each (2 <\ ])p: i. 20
┌─┬─┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬───┬───┬───┬───┬───┐
│5│8│12│18│24│30│36│42│52│60│68│78│84│90│100│112│120│128│138│
└─┴─┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴───┴───┴───┴───┴───┘

    NB. divide each sum by 2
    2 %~ each +/ each (2 <\ ])p: i.
20

┌───┬─┬─┬─┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┐
│2.5│4│6│9│12│15│18│21│26│30│34│39│42│45│50│56│60│64│69│
└───┴─┴─┴─┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┘

    NB. now, test each of those results for being prime.  1 p: y -- tests y
for being prime

    1&p: each 2 %~ each +/ each (2 <\ ])p: i.
20

┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐
│0│0│0│0│0│0│0│0│0│0│0│0│0│0│0│0│0│0│0│
└─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘

    NB. open the boxed results, so we can add them up
    >1&p: each 2 %~ each +/ each (2 <\ ])p: i. 20
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    NB. sum/reduce the vector of booleans.  If there's a prime, the sum will
be > 0
    +/>1&p: each 2 %~ each +/ each (2 <\ ])p: i. 20
0

    NB. ok. No primes.  Let's keep checking for larger groups

    +/>1&p: each 2 %~ each +/ each (2 <\ ])p: i. 1000
0
    +/>1&p: each 2 %~ each +/ each (2 <\ ])p: i. 10000
0
    +/>1&p: each 2 %~ each +/ each (2 <\ ])p: i. 100000
0

    NB. the previous output took a few seconds.  The next will take a few
minutes

    +/>1&p: each 2 %~ each +/ each (2 <\ ])p: i. 1000000
0
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to