Alan >You typo'd the problem statement compared to the original at their URL. With >PPraxis definition p and q are indeed, as Henry noted, consecutive and and >something between them, eg 2%~p+q, cannot be prime.
greg ~krsnadas.org -- from: Henry Rich <[email protected]> to: [email protected] date: 12 May 2013 04:51 subject: Re: [Jprogramming] Testing consecutive pairs of primes 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. -- from: Alan Stebbens <[email protected]> to: [email protected] date: 12 May 2013 03:07 subject: [Jprogramming] Testing consecutive pairs of primes >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
