Tom Chenault is a 71 years old. He served as a civil service mathematician for 30 years at

White Sands Missle Range. While there, he taught Fortran in the evenings for the WSMR

branch of New Mexico State Univerisity. District 23 of the Toastmaster organization elected

him District Governor for El Paso and New Mexico.

Married 47 years, he has 3 sons (no daughters). A survivor of both petite mal epilepsy and prostate cancer, his number theory interest now flourishes.

## Thursday, May 13, 2010

## Friday, April 23, 2010

### source code for segment sieve (test bed program)

c The following code is compatible to Fortran and definitely can be compiled with a

c F90 compiler.

c This test bed program was written in Fortran an runs out of DOS (the command

c prompt).

c It takes 1 second for 999900 to 1000000, and not much more for the higher ranges I c timed.

c programming stategy:

c 1. setup an (n by 3) matrix: cells are filled with 1's or left empty

c 2. use the algorithms to fill cells with 1's or leave empty

c 3. look for voids in the appropriate area

c 4. generate 40 reports to a file

c The executable can be downloaded

c The main advantages I see with these algorithms are:

c 1. We can do away with keeping up with the prime numbers (except for reports).

c 2. These allow an incremental database, so we don't have start over as we do c now.

program segmentsieve ! by Tom Chenault

c

c copyright 2010

c

c "Prime Thoughts" by Tom Chenault shows that all primes must belong to the

c Chenault Series which consists of 2, 3, ((n*6)+1), and ((n*6) -1),

c letting n = 1, infinity.

c

c The Chenault Segment Sieve calculates prime numbers within a user defined

c span without knowledge of previous primes.

c

c The Chenault Segment Sieve is an application of the Chenault Solution which

c is derived in "Prime Thoughts" by Tom Chenault.

c

c Vanita's Vector is a replica of the integer system, with each number on

c Vanita's Vector (vv) corresponding to (6*(vv number)) on the integer system.

c

c The varible m is used for vv calculations.

c m = integer, no limit

c

c Chenault Solution = (6*m(1)*m(2) +- m(1) +- m(2)) (vv)

c

c All composites are indicated by the Chenault Solution. (vv)

c

c CA1 = Chenault Algorithm I = 6m(1)*m(2) + m(1) + m(2) (vv)

c

c CA2 = Chenault Algorithm II = 6m(1)*m(2) + m(1) - m(2) (vv)

c

c CA3 = Chenault Algorithm III = 6m(1)*m(2) - m(1) 1 m(2) (vv)

c

c The Chenault Segment Sieve uses the 3 Chenault Algorithms to

c isolate all primes.

c

c The Chenault Plus Solution ((Chenault Algorithms I and III)).

c The Chenault Plus Solution isolates all plus ((n * 6) + 1) primes.

c

c The Chenault Minus Solution (2 of the 4 Chenault Solution's 4 algorithms)

c The Chenault Minus Solution isolates all minus ((n * 6) - 1) primes.

c The two algorithms of the Chenault Minus Solution yield the same results,

c so only one algorithm is used (Chenault Algortithm II).

c

c Knowing which of the Chenault Solution algorithms generated a vv point

c allows determination of minus composites and plus composites.

c

c All primes are determined by Chenault Algorithms I, II, and III.

c

c Common Voids in the numbers generated by Chenault Algorithms I and III

c identify all n's of plus primes, i. e. ((n*6) + 1) primes.

c

c Voids in the numbers generated by Chenault algorithm II identify all

c n's of minus primes, i. e. ((n*6) - 1) primes.

c

c Common voids in Chenault Algorithms I, II, and II identify

c all n's of twin primes, i. e., ((n*6) - 1, ((n*6) + 1

c

c

c Jeff's Jargon: (a repeat of this glossary is at the end of code)

c

c Chenault is pronounced Shin-alt

c

c is = integer scale. The variable n is used for is calcultions.

c n = integer, no limit

c

c A: A prime number is a positive integer number, greater than

c 1; such that 1 and itself are the only integers which

c divide the prime number yielding a positive integer with a

c zero remainder.

c B: The Chenault series consists of: 2, 3, all (6n-1) and all (6n+1).

c C: cn = Chenault number = an element of the Chenault series.

c D: mp = (6n-1) primes = "minus primes".

c E: pp = (6n+1) primes = "plus primes".

c F: mc = (6n-1) composite numbers = "minus composites".

c G: pc = (6n+1) composite numbers = "plus composites".

c H: mcn = (minus Chenault number) = any mp or mc.

c I: pcn = (plus Chenault number) = any pp or pc.

c J: unsorted cn's = 2 and 3.

c K: sorted cn's = all (6n-1) and all (6n+1).

c

c

c Jeff's Jargon: (Section II)

c

c A: tpc: Twin Prime Candidate = 6n-1, 6n+1 pair for a given n.

c B: potential twin prime partner: ptpp

c Letting a n6-1 prime be the reference, its potential

c twin prime partner is the n6+1 for that n.

c Letting a n6+1 prime be the reference, its potential

c twin prime partner is the n6-1 for that n.

c C: lonesome prime: a prime (either mp or pp) whose ptpp is a composite.

c D: lonesome plus prime: pp whose ptpp is mc.

c E: lonesome minus prime: mp whose ptpp is pc.

c F: lonesome plus composite: (6n+1) is composite, while

c (6n-1) is prime.

c G: lonesome minus composite: (6n+1) is prime, while

c (6n-1) is composite.

c H: married plus prime: pp of a twin prime pair.

c I: married minus prime: mp of a twin prime pair.

c J: the composite table: all composite (6n-1) and

c all composite (6n+1)

c K: the plus composite table all composite (6n+1)

c L: the minus composite table all composite (6n-1)

c A: integer scale: is

c B: Vanita’s Vector= an integer scale that is a replica of the is. Each integer on Vanita’s Vector corresponds to a multiple of 6 on the is.

c C: vv point = point on Vanita’s Vector. Note 3: Throughout this composition, the variable mvv = vv point = a positive integer, 1, thru infinity.

c D: tppptn = vv point = Twin Prime Pivot Point

c = n for an (6n-1),(6n+1) pair of primes.

c E: ptpppt = vv point = potential twin prime pivot point

c = n for an (6n-1),(6n+1) pair on is.

c F: ctpppt = vv point = compromised Pivot Point

c = either 6n -1 and, or 6n + 1 is composite.

c A: CAI = Chenault Algorithm I.

c B: CAII = Chenault Algorithm II.

c C: CAIII = Chenault Algorithm III.

c D: Chenault Segment Sieve = eliminates all ptppp on Vanita’a Vector that satisfy either CAI, CAII, or CAIII.

c E. Segment Sieve = Chenault Segment Sieve

c = an exercise of the Chenault Solution

c vv = Vanita's Vector = a replica of the is. Each integer of Vanita's

c Vector corresponds to a multiple of 6 on the is.

c The varible m is used for vv calculations.

c m = integer, no limit

c

c All composites are indicated by the Chenault Solution. (vv points)

c

c Chenault Solution = (6*m(1)*m(2) +- m(1) +- m(2)) (vv points)

c

c The sign combinations used by the Chenault Algorithms determine whether

c (6*n)-1 or (6*n)+1 is composite, i. e., whether we have a plus composite

c or a minus composite.

c

c --------------------------------------------------------------------

c --------------------------------------------------------------------

c

c is section:

c

c is = integer scale. The variable n is used for is calcultions.

c n = integer, no limit

c

c Chenault Series = 2, 3, (n6 - 1), (n6 + 1) (is points)

c Thelma's Thoughts: Prime Numbers are a subset of the Chenault Series.

c For proof, see "Prime Thoughts" by Tom Chenault.

c

c Chenault Number = member of Chenault Series

c

c twin pair = (6n-1), (6n+1) for the same n

c

c

c ptpp = potential twin prime partner =

c The potential twin prime partner of a

c n6-1 prime is the n6+1 for that n.

c The potential twin prime partner of a

c n6+1 prime is the n6-1 for that n.

c

c pp = plus prime = prime at (6n+1).

c

c mp = minus prime = prime at (6n-1).

c

c twin prime pair = (6n+1), (6n-1) = pp, mp for the same n.

c

c

c pc = plus composite = a composite at (6n+1).

c

c mc = minus composite = a composite at (6n-1).

c d

c twin composite pair = (6n+1), (6n-1) = pc, mc for the same n

c

c lonesome prime = prime (either mp or pp) whose potential twin prime

c partner is a composite.

c

c lonesome plus prime = pp whose potential twin prime partner is a mc.

c

c lonesome minus prime = mp whose potential twin prime partner is a pc.

c

c married plus prime = the pp from a twin prime pair (besides 3, 5)

c

c married minus prime = the mp from a twin prime pair (besides 3, 5)

c

c --------------------------------------------------------------------

c --------------------------------------------------------------------

c

c vv section:

c

c Vanita's Vector (vv) = a replica of the is. Each integer of Vanita's

c Vector corresponds to ((the vv integer) * 6)

c on the is.

c The varible m is used for vv calculations.

c m = integer, no limit

c

c pttppvpt = vv = potential twin prime pivot point.

c

c tppvpt = vv = twin prime pivot point = an integer multiple of 6 such

c that ((6*tppp)-1, ((6*tppp)+1) are the is elements of a twin prime).

c

c pppvpt = vv = plus prime pivot point.

c

c mppvpt = vv = minus prime pivot point.

c

c lonesome pvpt = vv = pivot point for pp,mc or pc,mp.

c

c lonesome pppvpt = vv which serves as a pivot point for pp, mc.

c

c lonesome mppvpt = vv which serves as a pivot point for pc, mp.

c

c ----------------------------------------------------------------------------

c ----------------------------------------------------------------------------

c ----------------------------------------------------------------------------

c

c This program can output any permutation of the 40 starred choices

c in any span supported by the hardware/software.

c

cg 1. The Twin prime table. (is points)

c Note: detected by common voids in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) + m(1) - m(2) = CA2 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: ((common void) * 6) + 1 = pp and

c ((common void) * 6) - 1 = mp

c (is points)

c

cg 2. The Twin prime Pivot Point table.

c Note: The Married Plus and Married Minus

c Pivot Point tables are identical to

c (The Twin prime Pivot Point table).

c Note: detected by common voids in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) + m(1) - m(2) = CA2 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c (Vanitas Vector Points)

c

cg 3. The Married Plus prime table.

c pp that are part of a twin prime pair

c Note: Twin primes are detected by common voids in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) + m(1) - m(2) = CA2 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: ((common void) * 6) + 1 is a married plus prime. (is points)

c

c 4. The Married Minus prime table.

cg mp that are part of a twin prime pair

c Note: Twin primes are detected by common voids in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) + m(1) - m(2) = CA2 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: ((common void) * 6) - 1 is a married minus prime. (is points)

c

c 5. The prime table

cg (includes the primes in (pp, mc) and (pc, mp) and (pp, mp))

c Note: The pp are detected by common voids

c in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((common void of CA1 and CA2) * 6) + 1) is a pp.

c Note: The mp are detected by voids in the output from

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((void of CA2) * 6) - 1) is a mp.

c (is points)

c

c 6. The Pivot Point table of primes.

cg (includes the Pivot Points for pairs: (pp, mc) and (pc, mp) and (pp, mp))

c Note: The Pivot Points for pp are detected by common voids

c in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: The Pivot Points for mp are detected by voids in output of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

c

c 7. The Plus prime table.

cg Note: detected by common voids in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((common void of CA1 and CA3) * 6) + 1 = pp

c (is points)

c

c 8. The Plus prime Pivot Point table. (Vanita's Vector Points)

cg Note: detected by common voids in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c (Vanitas Vector Points)

c

c 9. The Minus prime table.

cg Note: detected by voids in

c 6m(1)m(2) + m(1) - m(2) = CA2

c (void in CA2) * 6) - 1 = mp

c (is points)

c

c 10. The Minus prime Pivot Point table. (Vanita's Vector Points)

cg Note: detected by voids in

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

c

c 11. The Lonesome prime table.

cg (the primes in (pp, mc) and (pc, mp) pairs)

c (pp,mc) detected by Pivot Point being a common void in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c and Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c NOTE:((common void of CA1 and CA3) * 6) + 1 = pp

c ((member of CA2) * 6) - 1 = mc

c and

c (pc,mp) detected by Pivot Point being a member of either or both

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((member of either (or both) CA1 or CA3) * 6) + 1 = pc

c and Pivot Point being a void of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((void of CA2) * 6) - 1 = mp

c (is points)

c

c 12. The Lonesome prime Pivot Point table.

cg Pivot Points for (pp, mc) or (pc, mp) pairs

c detected by common voids in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c and Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c and

c detected by Pivot Point being a member of either (or both)

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c and being a void of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

c

c 13. The Lonesome Plus prime table.

cg identifies primes from (pp,mc) pairs

c (pp,mc) detected by Pivot Point being a common void in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c and Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((common void of CA1 and CA3) * 6) + 1 = pp

c ((member of CA2) * 6) - 1 = mc

c (is points)

c

c 14. The Lonesome Plus Pivot Point table.

cg detected by Pivot Point being a common void in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c and Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

c

c 15. The Lonesome Minus prime table.

cg identifies primes from (pc,mp) pairs

c detected by Pivot Point being a member of either (or both)

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((member of either (or both) CA1 or CA3) * 6) + 1 = pc

c and Pivot Point being a void of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((void of CA2) * 6) - 1 = mp

c (is points)

c

c 16. The Lonesome Minus Pivot Point table.

cg detected by Pivot Point being a member of either (or both)

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c and being a void of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

c

c 17. Composite table (all pc and all mc).

cg pc detected by Pivot Point being a member of either (or both)

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((member of either (or both) CA1 or CA3) * 6) + 1 = pc

c mc detected by Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((member of CA2) * 6) - 1 = mc

c (is points)

c

c 18. Pivot Point table for all composites (pc's and mc's).

cg Pivot Point for pc detected by being a member of either (or both)

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c Pivot Point for mc detected by being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

c

c 19. pc table

cg pc detected by Pivot Point being a member of either

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3 (or both)

c ((member of either (or both) CA1 or CA3) * 6) + 1 = pc

c (is points)

c

c 20. Pivot Point table for pcs.

cg pc detected by Pivot Point being a member of either

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3 (or both)

c (Vanitas Vector Points)

c

c 21. mc table

cg mc detected by Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((member of CA2) * 6) - 1 = mc

c (is points)

c

c 22. Pivot Point table for mc.

cg mc detected by Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

c

c 23. The pc table generated by CA1 = 36m(1)m(2) + 6m(1) + 6m(2) + 1

cg those pc detected by Pivot Point being a member of

c 6m(1)m(2) + m(1) + m(2) = CA1

c ((member of CA1) * 6) + 1 = pc

c (is points)

c

c 24. ((n * 6) + 1) Voids in pc table generated by (CA1 * 6) + 1

cg (is points)

c

c 25. The Pivot Point table generated by CA1

cg (Vanitas Vector Points)

c

c 26. Voids in the Pivot Point table generated by CA1

cg = 6m(1)m(2) + m(1) + m(2)

c (Vanitas Vector Points)

c

cg 27. The mc table is detected by a Pivot Point being generated by

c CA2.

c ((member of CA2) * 6) - 1 = mc

c (is points)

c

c

c 28. ((n * 6) -1) = mp voids in mc table generated by

cg 36m(1)m(2) +6m(1) -6m(2) -1 = (CA2 * 6) - 1

c ((void of CA2) * 6) - 1 = mp

c (is points)

c 29. The Pivot Point table for mc's can be generated by

cg CA2 = 6m(1)m(2) + m(1) - m(2)

c (6 * (member of CA2)) - 1 = mc

c (Vanitas Vector Points)

c Note: is identical to the

c Pivot Point table generated by

c 6m(1)m(2) - m(1) + m(2)

c

c 30. Voids in the Pivot Point table generated by CA2 =

cg 6m(1)m(2) + m(1) - m(2)

c note: these voids are Pivot Points for mp

c (Vanitas Vector Points)

c

c 31. The mc table generated by 36m(1)m(2) - 6m(1) + 6m(2) - 1

cg is identical to 27 output since m(1) and m(2) are interchangeable.

c (is points)

c

c 32. ((n * 6) -1) Voids (these are mp) in the mc table generated by

cg 36m(1)m(2) - 6m(1) + 6m(2) - 1

c (same results as 28)

c (is points)

c

c 33. The Pivot Point table generated by

cg 6m(1)m(2) - m(1) + m(2)

c (Vanita's Vector Points)

c Note: is identical to the

c Pivot Point table generated by

c 6m(1)m(2) + m(1) - m(2) = CA2

c (is identical to 29)

c

c 34. Voids in the Pivot Point table generated by

cg 6m(1)m(2) - m(1) + m(2)

c (identical to 30 output)

c (Vanita's Vector Points)

c

c 35. pc table generated by

cg 36m(1)m(2) - 6m(1) - 6m(2) + 1 = (CA3 * 6) + 1

c (is points)

c

c 36. ((n*6)+1) voids (possible pp) in pc table generated by

cg 36m(1)m(2) - 6m(1) - 6m(2) + 1

c (is points)

c

c 37. The Pivot Point table generated by

cg 6m(1)m(2) - m(1) - m(2). (CA3)

c (Vanita's Vector Points)

c

c 38. Voids in the Pivot Point table generated by

cg 6m(1)m(2) - m(1) - m(2) = CA3

c (Vanitas Vector Points)

c

c 39. Pivot Point table generated by combining the output from

cg 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: ((member of either (or both) CA1 or CA3) * 6) + 1 = pc

c (Vanitas Vector Points)

c 40. voids in Pivot Points table generated by combining

cg output from 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: ((commom void for CA1 and CA3) * 6) + 1 = pp

c (Vanitas Vector Points)

c

c

c

c --------------------------------------------------------------------

c --------------------------------------------------------------------

c

c The Chenault Sieve is an exercise of the Chenault Solution.

c

c The Chenault Solution identifies all mc and all pc.

c

c The Chenault Solution = 6*m(1)*m(2) +- m(1) +- m(2)

c

c The Chenault Solution is a vv calculation.

c

c The Chenault Solution is an expression derived from four is equations.

c

c 1. (6n(1) + 1) (6n(2) + 1) = 36n(1)n(2) + 6n(1) + 6n(2) + 1 = pc

c 2. (6n(1) + 1) (6n(2) - 1) = 36n(1)n(2) - 6n(1) + 6n(2) - 1 = mc

c 3. (6n(1) - 1) (6n(2) + 1) = 36n(1)n(2) + 6n(1) - 6n(2) - 1 = mc

c 4. (6n(1) - 1) (6n(2) - 1) = 36n(1)n(2) - 6n(1) - 6n(2) + 1 = pc

c

c Since equations 2. and 3. yield the same results, we can focus our

c considerations on only three algorithyms.

c

c Expressing 1, 2, and 4 as vv, we get

c

c Chenault Algorithyms

c

c CA1 = 6m(1)m(2) + m(1) + m(2)

c = m(1)(6m(2) + 1) + m(2) note: this derived from a pc

c CA2 = 6m(1)m(2) + m(1) - m(2)

c = m(1)(6m(2) + 1) - m(2) note: this derived from a mc

c CA3 = 6m(1)m(2) - m(1) - m(2)

c = m(1)(6m(2) - 1) - m(2) note: this derived from a pc

c

c

c The segment sieve program as written is limited to a max of 6 digit input,

c but the logic is applicable to any magnitude.

c note: Finding new primes is greatly simplified.

c

c

c Some thoughts for further exploration:

c

c Create files of all points elimiated on Vanita's Vector by the Chenault

c Sieve. Group together and as separate categories by:

c Chenault Algorithm

c ptppp = potential twin prime pivot points

c pc = plus composites

c mc = minus composites

c tppvpt = vv = twin prime pivot point = an integer multiple of 6 such

c that ((6*tppp)-1, ((6*tppp)+1) are the is elements of a twin prime).

c pppvpt = vv = plus prime pivot point.

c pppvpt = vv = plus prime prime pivot point = an integer multiple of 6

c such that ((6*pppvpt)-1, ((6*pppvpt)+1) are mc, pp.

c mppvpt = vv = minus prime pivot point.

c mppvpt = vv = plus prime prime pivot point = an integer multiple of 6

c such that ((6mppvpt)-1, ((6*mppvpt)+1) are mc, pp.

c

c

c 8. Sort eliminated potential primes.

c

c 10. Create file of sorted eliminated ptppp.

c (potential twin prime pivot points on Vanita's Vector).

c This data warrants further study.

c

c

c 11. Build file of Vanita Vector's tppp (twin prime pivot points)

c This data warrants further study.

c

c 13. Create file of sorted eliminated pppp(plus prime pivot points) on

c Vanita's Vector .

c This data warrants further study.

c

c

c 14. Build file of all Vanita Vector's pppp (plus prime pivot points)

c (including those that are also tppp (twin prime pivot points).

c This data warrants further study.

c

c

c 15. Translate the file of all of Vanita's Vector pppp from the vv scale

c to integer scale plus prime points.

c This data warrants further study.

c

c

c 16. Build file of Vanita Vector's lonesome pppp (plus prime pivot points).

c (includes only pppp that are not also tppp (twin prime pivot points).

c This data warrants further study.

c

c

c 17. Translate the file of Vanita's Vector lonesome pppp from the vv scale

c to number scale plus prime points.

c This data warrants further study.

c

c

c

c

c 18. Create file of sorted eliminated mppp(minus prime pivot points) on

c Vanita's Vector .

c This data warrants further study.

c

c

c 19. Build file of all Vanita Vector's mppp (minus prime pivot points)

c (including those that are also tppp (twin prime pivot points).

c This data warrants further study.

c

c

c 20. Translate the file of all of Vanita's Vector mppp from the vv scale

c to number scale minus prime points.

c This data warrants further study.

c

c

c 21. Build file of Vanita Vector's lonesome mppp (minus prime pivot points).

c (includes only mppp that are not also tppp (twin prime pivot points).

c This data warrants further study.

c

c

c 22. Translate the file of Vanita's Vector lonesome mppp from the vv scale

c to number scale minus prime points.

c This data warrants further study.

c

c

c

c note: If your computer is set to print from DOS or the Command Prompt,

c the following will work for you as is, else use notepad

c in the batch file.

c

c

c 23. print all files this program created?

c

c

c

c 24. print eliminatedptppp.tmp (Vanita's Vector points)

c (eliminated potential twin prime pivot points)?

c

c

c

c 25. print eliminatednumbers.tmp (number scale conversions of the

c eliminated potential twin prime pivot points and the

c associated plus or minus signs)?

c

c

c

c 26. print sortedeliminatednumbers.tmp (number scale conversions of the

c eliminated potential twin prime pivot points and the

c associated plus or minus signs) in numerical order?

c

c

c 27. print allprimes.tmp (the prime table portion you requested)?

c

c

c

c 28. print sortedeliminatedptppp.tmp (eliminatedptppp.tmp (Vanita's Vector

c points, eliminated potential twin prime pivot points)

c in numerical order?

c

c

c 29. print alltppp.tmp (Vanita's Vector twin prime pivot points)?

c

c

c

c 30. print alltwinprimes.tmp (the twin primes from the portion of the

c prime table you requested>?

c

c

c

c 31. print sortedeliminatedpppp.tmp (eliminatedptppp.tmp (Vanita's Vector

c points, eliminated potential plus prime pivot points)

c in numerical order?

c

c

c

c 32. print allpppp.tmp (all Vanita's Vector plus prime pivot points,

c includes those that are also tppp)?

c

c

c

c 33. print allppnumbers.tmp (the plus primes from the portion of the

c prime table you requested>?

c

c

c

c 34. print lonesomepppp.tmp (Vanita's Vector plus prime pivot points,

c excluding those that are also tppp)?

c

c

c

c 35. print lonesomeppnumbers.tmp (the plus primes from the portion of the

c prime table you requested whose potential twin prime partners

c are composites>?

c

c

c

c 36. print sortedeliminatedmppp.tmp (eliminatedptppp.tmp (Vanita's Vector

c points, eliminated potential minus prime pivot points)

c in numerical order?

c

c

c 37. print allmppp.tmp (all Vanita's Vector minus prime pivot points,

c includes those that are also tppp)?

c

c

c

c 38. print allmpnumbers.tmp (the minus primes from the portion of the

c prime table you requested>?

c

c

c

c 39. print lonesomemppp.tmp (Vanita's Vector minus prime pivot points,

c excluding those that are also tppp)?

c

c

c

c 40. print lonesomempnumbers.tmp (the minus primes from the portion of the

c prime table you requested whose potential twin prime partners

c are composites>?

c

c The Logic Steps of this Chenault Sieve Program follow:

c

c A. Declare variables as necessary for Fortran compatable program

character scale*2, again, choices*80, filename*80, output

c

c scale = is if user plans to input span limits using the commonly

c used integer scale.

c = vv if user plans to input span limits using Vanita's Vector.

integer lowervv, lowerm, ichoice(100), upperlimit,

1 uppervv, upperm, oldpos, ca1, ca2, ca3, ca25,

2 vv(9999999, 3), upperis

c

c lowervv = user's lower limit on vv.

c lowerm = The lowest m value which will effect lowervv.

c ichoice(100) = array for registering user choices of output options

c uppervv = user's max limit on vv.

c upperm = The max m value which will effect uppervv.

c oldpos = comma locator in string parse logic

c vv(9999999, 4) = storage array for pc, pp, mc, or mp indicators,

c can hold up to 4 indicators for 9999999 vv points.

c loweris = user's lower input on is, if used

c upperis = user's upper input on is, if used

c

c B. Give user option of inputing limits as is (integer scale) or as

c vv (Vanita's Vector scale)

c note: all sieve calculations are done on vv scale.

c

5 print *, 'choose input scale'

print *, ' is(integer scale) or vv(Vanitas Vector scale)'

print *, ' default = vv'

read (5, '(a)') scale

if ((scale .eq. '') .or. (scale .eq. 'VV')) scale = 'vv'

if (scale .eq. 'IS') scale = 'is'

if ((scale .ne. 'is') .and. (scale .ne. 'vv')) go to 5

c

c

c C. Get user desired lower limit of output, default = 1. Remind user of

c scale choice (is or vv).

c (This version of the sieve program will accept thru 6 digit input)

c

c

c Record user desired lower limit as a Vanita's Vector point, convert if

c neccesary.

c

c If lower limit exceeds 6 digits, an error message appears.

c

c If user desired lower limit is positive, we proceed. If lower limit is

c not acceptable; tell user, give option to input other lower limit and

c give option of exiting.

c

10 print *, 'input lower limit of span on ', scale

print *, 'max input = 6 digits'

read (5, '(I6)') lowerlimit

c If user desired lower limit is positive, we proceed. If lower limit is

c not acceptable; tell user, give option to input other lower limit and

c give option of exiting.

if (lowerlimit .lt. 1) then

print *, 'lower limit is less than 1'

print *, 'e to exit, return to try again'

read (5, '(a)') again

if ((again .eq. 'e') .or. (again .eq. 'E')) stop

go to 10

endif

if (lowerlimit .gt. 999999) then

print *, 'lower limit is greater than 999999'

print *, 'e to exit, return to try again'

read (5, '(a)') again

if ((again .eq. 'e') .or. (again .eq. 'E')) stop

go to 10

endif

c If input is integer scale, adjust to vv, which hosts all

c internal calculations.

if (scale .eq. 'is') then

loweris = lowerlimit

lowervv = (lowerlimit + 2) / 6 ! gets vv

c all interior calculations are in vv

else

lowervv = lowerlimit

loweris = (6 * lowervv) - 1

endif

c

c D. Lower m limit needs to include the lowest m values which can affect

c the user desired span. The Chenault Algorithm which can exert maximum

c influence on the user min, using vv points less than the user defined

c span, is CA1, 6m(1)m(2) + m(1) + m(2).

c Expansion of the lower m limit can be maximized by:

c D.1. Setting m(1) = 1.

c D.2. CA1 then results in 6*m(2) + 1 + m(2)

c D.3. Setting 7*m(2) = (user desired lower vv limit) - 1

c D.4. This yields calculation starting points of

c m(1) = 1 and

c m(2) = ((user desired lower vv limit) - 1) / 7

c

lowerm = (lowervv - 1) / 7

print *, 'lowerm = ', lowerm

c

c E. Get user desired upper limit of span desired. Remind user of previous

c scale choice (is or vv). Make user aware of limited number size

c supported by the hardware/software.

c (This version of the sieve program will accept thru a 6 digit input)

c

c Convert is to vv if neccessary.

c

c Record user desired upper limit as a Vanita's Vector point.

c

c If upper > lower> 0, the program accepts the limits, else go to 1.

c

c If upper limit exceeds six digits, an error message appears.

c

c If user defined upper limit is greater than user desired lower limit,

c we proceed. If upper limit is not acceptable; tell user, give option to

c input other upper limit and give option of exiting.

c

20 print *, ' '

print *, ' '

print *, 'input upper limit of span on ', scale

print *, 'max input = 6 digits'

read (5, '(I6)') upperlimit

if (upperlimit .le. lowerlimit) then

print *, 'upper span limit is less than or equal to the lower',

1 ' span limit entered.'

print *, 'type e to exit, type a return to try again'

read (5, '(a)') again

if ((again .eq. 'e') .or. (again .eq. 'E')) stop

go to 20

endif

if (upperlimit .gt. 999999) then

print *, 'upper limit is greater than 999999'

print *, 'e to exit, return to try again'

read (5, '(a)') again

if ((again .eq. 'e') .or. (again .eq. 'E')) stop

go to 20

endif

if (scale .eq. 'is') then

upperis = upperlimit

uppervv = (upperlimit + 2) / 6 ! gets vv

c all interior calculations are in vv

else

uppervv = upperlimit

upperis =(uppervv * 6) + 1

endif

c

c

c F. Upper m limit needs to include the highest m values which can affect

c the user desired span. The Chenault Algorithm which can exert maximum

c influence on the user max, using vv points greater than the user defined

c span, is CA3, 6m(1)m(2) - m(1) - m(2).

c Expansion of the upper m limit can be maximized by:

c D.1. Setting m(1) = 1.

c D.2. CA3 then results in 6*m(2) - 1 - m(2)

c D.3. Setting 5*m(2) = (user desired upper vv limit) + 1

c D.4. This yields calculation points of m(1) = 1 and

c m(2) = ((user desired upper vv limit) + 1) / 5

c

upperm = (uppervv + 1) / 5

print *, 'upperm = ', upperm

c

c G. Activate Chenault Sieve such that limits are satisfied and all

c compromised vv points within the user defined span are noted.

c (note: The Chenault Sieve operates on Vanita's Vector, which is

c a replica of the integer scale. Each integer on Vanita's

c Vector represents a multiple of 6 on the integer scale,

c since all twin primes^ are centered around multiples of 6.)

c (^=except for the twin prime at 3, 5 which is an anomalie)

c

c

c note: The integers on Vanita's Vector which are not matched (compromised)

c by CA1 or CA2 or CA3 are tpppt.

c

c G. Indicate all vv in span that are satisfied by

c Chenault Algorithym I, 6m(1)m(2) + m(1) + m(2). This results from

c + * +, so we have a pc at 6(6m(1)m(2) + m(1) + m(2)) + 1. (is)

c

c G2. The method used for calculation may dictate the need for

c Indicating all vv in user span that are satisfied by

c 'Chenault Algorithm 2.5', 6m(1)m(2) - m(1) + m(2).

c Note: The method following, and used, does need ca25.

c

floatupperm = upperm

floatlowerm = lowerm

do m1 = 1, (int(sqrt(floatupperm)) + 1)

do m2 = upperm, int(sqrt(floatlowerm)), -1

ca1 = 6*m1*m2 + m1 + m2

if ((ca1 .ge. lowervv) .and. (ca1 .le. uppervv))

1 vv(ca1, 1) = 1

ca2 = 6*m1*m2 + m1 - m2

if ((ca2 .ge. lowervv) .and. (ca2 .le. uppervv))

1 vv(ca2, 2) = 2

ca25 = 6*m1*m2 - m1 + m2

if ((m1 .eq. 1) .and. (m2 .eq. 4)) print *, 'ca25 = ', ca25

if ((ca25 .ge. lowervv) .and. (ca25 .le. uppervv))

1 vv(ca25, 2) = 2

ca3 = 6*m1*m2 - m1 - m2

if ((ca3 .ge. lowervv) .and. (ca3 .le. uppervv))

1 vv(ca3, 3) = 3

enddo

enddo

c

c G2. Note (continued):

c The method following does not need ca25.

c

c G2.a. Indicate all vv in span that are satisfied by

c Chenault Algorithym I, 6m(1)m(2) + m(1) + m(2). This results from

c + * +, so we have a pc at 6(6m(1)m(2) + m(1) + m(2)) + 1. (is)

c

c do m1 = 1, upperm

c do m2 = 1, upperm

c ca1 = 6*m1*m2 + m1 + m2

c print *, 'ca1 = ', ca1

c if ((ca1 .ge. lowervv) .and. (ca1 .le. uppervv)) then

c vv(ca1, 1) = 1

c endif

c enddo

c enddo

c

c G2.b. Indicate all vv in span that are satisfied by

c Chenault Algorithym II, 6m(1)m(2) + m(1) - m(2). This results from

c + * -, so we have a mc at 6(6m(1)m(2) + m(1) - m(2)) - 1. (is)

c

c do m1 = 1, upperm

c do m2 = 1, upperm

c ca2 = 6*m1*m2 + m1 - m2

c if ((ca2 .ge. lowervv) .and. (ca2 .le. uppervv)) then

c vv(ca2, 2) = 2

c endif

c enddo

c enddo

c

c

c G2.c. Indicate all vv in span that are satisfied by

c Chenault Algorithym III, 6m(1)m(2) - m(1) - m(2). This results from

c - * -, so we have a pc at 6(6m(1)m(2) - m(1) - m(2)) + 1. (is)

c

c do m1 = 1, upperm

c do m2 = 1, upperm

c ca3 = 6*m1*m2 - m1 - m2

c if ((ca3 .ge. lowervv) .and. (ca3 .le. uppervv)) then

c vv(ca3, 3) = 3

c endif

c enddo

c enddo

c

c

c -----------------------------------------------------------------------

c ------------------- ----------------------------------------------------

c -----------------------------------------------------------------------

c

c REPORTS SECTION

c

c

25 print *, ' '

print *, ' Save output to a file? or Print to screen F/S '

1 ' def = F'

print *, ' '

read (5, '(a)') output

if ((output .eq. ' ') .or. (output .eq.'f')) output = 'F'

if (output .eq. 'F') then

print *, 'input filename of file which will hold output of',

1 ' this run of the segment sieve.'

read (5, '(a)') filename

open (1, file = filename, status='UNKNOWN', err=10000)

endif

30 print *, ' Page 1 of choices'

print ' '

print *, 'This program can output any permutation of the',

1 ' 40 starred choices.'

c The non-starred choices are logistical.

print *, ' '

print *, '*1 The Twin prime table.',

cg Note: detected by common voids in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) + m(1) - m(2) = CA2 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: ((common void) * 6) + 1 = pp and

c ((common void) * 6) - 1 = mp

c (is points)

1 ' (is points)'

print *, '*2 The Twin prime Pivot Point table.'

cg Note: The Married Plus and Married Minus

c Pivot Point tables are identical to

c (The Twin prime Pivot Point table).

c Note: detected by common voids in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) + m(1) - m(2) = CA2 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c (Vanitas Vector Points)

print *, ' Note: The Married Plus and Married Minus Pivot',

1 ' Point tables are identical to '

print *, ' 2 (The Twin prime Pivot Point table). ',

1 ' (Vanitas Vector Points)'

print *, ' '

print *, '*3 The Married Plus prime table.',

cg pp that are part of a twin prime pair

c Note: Twin primes are detected by common voids in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) + m(1) - m(2) = CA2 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: ((common void) * 6) + 1 is a married plus prime. (is points)

1 ' (is points)'

c pp that are part of a twin prime

print *, '*4 The Married Minus prime table.',

cg mp that are part of a twin prime pair

c Note: Twin primes are detected by common voids in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) + m(1) - m(2) = CA2 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: ((common void) * 6) - 1 is a married minus prime. (is points)

1 ' (is points)'

print *, ' '

print *, '*5 The prime table.',

cg (includes the primes in (pp, mc) and (pc, mp) and (pp, mp))

c Note: The pp are detected by common voids

c in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((common void of CA1 and CA2) * 6) + 1) is a pp.

c Note: The mp are detected by voids in the output from

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((void of CA2) * 6) - 1) is a mp.

c (is points)

1 ' (is points)'

print *, '*6 The prime Pivot Point table.'

cg (includes the Pivot Points for pairs: (pp, mc) and (pc, mp) and (pp, mp))

c Note: The Pivot Points for pp are detected by common voids

c in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: The Pivot Points for mp are detected by voids in output of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

print *, ' '

print *, '*7 The Plus prime table.',

cg Note: detected by common voids in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((common void of CA1 and CA3) * 6) + 1 = pp

c (is points)

1 ' (is points)'

print *, '*8 The Plus prime Pivot Point table.',

cg Note: detected by common voids in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c (Vanitas Vector Points)

1 ' (Vanitas Vector Points)'

print *, ' '

print *, '*9 The Minus prime table.',

cg Note: detected by voids in

c 6m(1)m(2) + m(1) - m(2) = CA2

c (void in CA2) * 6) - 1 = mp

c (is points)

1 ' (is points)'

print *, '*10 The Pivot Point table for Minus primes.',

cg Note: detected by voids in

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

1 ' (Vanitas Vector Points)'

print *, ' '

print *, '*11 The Lonesome prime table.',

c *11 Lonesome prime table.

cg (the primes in (pp, mc) and (pc, mp) pairs)

c (pp,mc) detected by Pivot Point being a common void in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c and Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c NOTE:((common void of CA1 and CA3) * 6) + 1 = pp

c ((member of CA2) * 6) - 1 = mc

c and

c (pc,mp) detected by Pivot Point being a member of either or both

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((member of either (or both) CA1 or CA3) * 6) + 1 = pc

c and Pivot Point being a void of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((void of CA2) * 6) - 1 = mp

c (is points)

1 ' (is points)'

print *, '*12 The Lonesome prime Pivot Point table.',

cg Pivot Points for (pp, mc) or (pc, mp) pairs

c detected by common voids in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c and Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c and

c detected by Pivot Point being a member of either (or both)

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c and being a void of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

1 ' (Vanitas Vector Points)'

print *, ' '

print *, '*13 The Lonesome Plus prime table.',

cg identifies primes from (pp,mc) pairs

c (pp,mc) detected by Pivot Point being a common void in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c and Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((common void of CA1 and CA3) * 6) + 1 = pp

c ((member of CA2) * 6) - 1 = mc

c (is points)

1 ' (is points)'

print *, '*14 The Lonesome Plus prime Pivot Point table.',

cg detected by Pivot Point being a common void in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c and Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

1 ' (Vanitas Vector Points)'

print *, ' '

print *, '*15 The Lonesome Minus prime table.',

cg identifies primes from (pc,mp) pairs

c detected by Pivot Point being a member of either (or both)

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((member of either (or both) CA1 or CA3) * 6) + 1 = pc

c and Pivot Point being a void of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((void of CA2) * 6) - 1 = mp

c (is points)

1 ' (is points)'

print *, '*16 Pivot Point table for Lonesome Minus primes.',

cg detected by Pivot Point being a member of either (or both)

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c and being a void of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

1 ' (Vanitas Vector Points)'

print *, ' '

print *, '*17 Composite table (all pc and all mc).',

cg pc detected by Pivot Point being a member of either (or both)

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((member of either (or both) CA1 or CA3) * 6) + 1 = pc

c mc detected by Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((member of CA2) * 6) - 1 = mc

c (is points)

1 ' (is points)'

print *, '*18 Pivot Point table for all composites. ',

c *18 Pivot Point table for all composites (pc's and mc's).

cg Pivot Point for pc detected by being a member of either (or both)

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c Pivot Point for mc detected by being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

1 '(Vanitas Vector Points)'

print *, ' '

print *, '41 All starred choices on page 1'

print *, ' If 42, 43, or 44 are chosen, no further options ',

1 'are offered'

print *, '42 All is starred results, all pages (is points)'

print *, '43 All vv starred results, all pages ',

1 '(Vanitas Vector Points)'

print *, '44 All 40 starred choices (is and Vanitas Vector)'

print *, ' '

print *, 'Type line number(s) of outputs desired from this page ',

1 ' , separated by commas.'

print *, ' (use only 1 line) (do not type * or spaces(blanks)'

read (5, '(a)') choices

oldpos = 0 ! indicate that no commas in string have been found so far

if (choices(1:1) .eq. ' ') go to 40 ! blank line

do i = 1, 80

if ((choices(i:i) .eq. ',') .or. (choices(i:i) .eq. ' ')) then

c if a comma is found, process here

c if a blank is found, we assume last input

if ((i - oldpos) .eq. 3) then

isubscript = ((ichar(choices((oldpos+1):(i-2)))) -48)*10

isubscript = isubscript +

1 (ichar(choices((oldpos+2):(i-1)))) - 48

ichoice (isubscript) = isubscript

else

ichoice((ichar(choices((oldpos+1):(i-1)))) - 48) ! turn on option

1 = (ichar(choices((oldpos+1):(i-1)))) - 48

endif

oldpos = i ! mark position of this comma

endif

if (choices(i:i) .eq. ' ') go to 40 ! if we have blank, exit parse

enddo

40 oldpos = 0 ! clear for next string test

c 41 test for Chose all starred choices on this page

if (ichoice(41) .eq. 41) then

do i = 1, 18

ichoice(i) = i

enddo

ichoice(41) = 0

endif

c 42 test for All is starred results, all pages (is points only)

if (ichoice(42) .eq. 42) then

ichoice(1) = 1 ! The Twin prime table.

cg Note: detected by common voids in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) + m(1) - m(2) = CA2 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: ((common void) * 6) + 1 = pp and

c ((common void) * 6) - 1 = mp

c (is points)

ichoice(3) = 3 ! The Married Plus prime table.

cg pp that are part of a twin prime pair

c Note: Twin primes are detected by common voids in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) + m(1) - m(2) = CA2 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: ((common void) * 6) + 1 is a married plus prime. (is points)

c (is points)

ichoice(4) = 4 ! The Married Minus prime table.

cg mp that are part of a twin prime pair

c Note: Twin primes are detected by common voids in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) + m(1) - m(2) = CA2 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: ((common void) * 6) - 1 is a married minus prime. (is points)

c (is points)

ichoice(5) = 5 ! The prime table. (is points)

cg (includes the primes in (pp, mc) and (pc, mp) and (pp, mp))

c Note: The pp are detected by common voids

c in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((common void of CA1 and CA2) * 6) + 1) is a pp.

c Note: The mp are detected by voids in the output from

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((void of CA2) * 6) - 1) is a mp.

c (is points)

ichoice(7) = 7 ! The Plus prime table.

cg Note: detected by common voids in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((common void of CA1 and CA3) * 6) + 1 = pp

c (is points)

ichoice(9) = 9 ! The Minus prime table.

cg Note: detected by voids in

c 6m(1)m(2) + m(1) - m(2) = CA2

c (void in CA2) * 6) - 1 = mp

c (is points)

ichoice(11) = 11 ! The Lonesome prime table. (is points)

cg (the primes in (pp, mc) and (pc, mp) pairs)

c (pp,mc) detected by Pivot Point being a common void in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c and Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c NOTE:((common void of CA1 and CA3) * 6) + 1 = pp

c ((member of CA2) * 6) - 1 = mc

c and

c (pc,mp) detected by Pivot Point being a member of either or both

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((member of either (or both) CA1 or CA3) * 6) + 1 = pc

c and Pivot Point being a void of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((void of CA2) * 6) - 1 = mp

c (is points)

ichoice(13) = 13 ! The Lonesome Plus prime table. (is points)

cg identifies primes from (pp,mc) pairs

c (pp,mc) detected by Pivot Point being a common void in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c and Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((common void of CA1 and CA3) * 6) + 1 = pp

c ((member of CA2) * 6) - 1 = mc

c (is points)

ichoice(15) = 15 ! The Lonesome Minus prime table. (is points)

cg identifies primes from (pc,mp) pairs

c detected by Pivot Point being a member of either (or both)

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((member of either (or both) CA1 or CA3) * 6) + 1 = pc

c and Pivot Point being a void of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((void of CA2) * 6) - 1 = mp

c (is points)

ichoice(17) = 17 ! Composite table (all pc and all mc).

cg pc detected by Pivot Point being a member of either (or both)

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((member of either (or both) CA1 or CA3) * 6) + 1 = pc

c mc detected by Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((member of CA2) * 6) - 1 = mc

c (is points)

ichoice(19) = 19 ! The pc table.

cg pc detected by Pivot Point being a member of either

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3 (or both)

c ((member of either (or both) CA1 or CA3) * 6) + 1 = pc

c (is points)

ichoice(21) = 21 ! The Minus Composite table. (is points)

c 21 mc table

cg mc detected by Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((member of CA2) * 6) - 1 = mc

c (is points)

ichoice(23) = 23 ! The pc table generated by

c CA1 = 36m(1)m(2) + 6m(1) + 6m(2) + 1

cg those pc detected by Pivot Point being a member of

c 6m(1)m(2) + m(1) + m(2) = CA1

c ((member of CA1) * 6) + 1 = pc

c (is points)

ichoice(24) = 24 ! Voids in pc composite table generated by

cg 36m(1)m(2) + 6m(1) + 6m(2) + 1 (CA1)(is points)

c ((n * 6) + 1) Voids in pc table generated by (CA1 * 6) + 1

c (is points)

ichoice(27) = 27 ! The mc composite table generated by

c 36m(1)m(2) + 6m(1) - 6m(2) - 1 (is points)

cg The mc table is detected by a Pivot Point being generated by CA2.

c ((member of CA2) * 6) - 1 = mc

c (is points)

ichoice(28) = 28 ! Voids(mp) in mc table generated by

c 36m(1)m(2) + 6m(1) - 6m(2) - 1

c ((n * 6) -1) = mp voids in mc table generated by

cg 36m(1)m(2) +6m(1) -6m(2) -1 = (CA2 * 6) - 1

c ((void of CA2) * 6) - 1 = mp

c (is points)

ichoice(31) = 31 ! The mc table generated by

c 36m(1)m(2) - 6m(1) + 6m(2) - 1

cg is identical to 27 output since m(1) and m(2) are interchangeable.

c (is points)

c is identical to 31 output. (is points)

ichoice(32) = 32 ! ((n * 6) -1) Voids(mp's) in mc table generated

cg by 36m(1)m(2) - 6m(1) + 6m(2) - 1

c is identical to 28 output. (is points)

c (is points)

ichoice(35) = 35 ! pc table generated by

cg 36m(1)m(2) - 6m(1) - 6m(2) + 1 = (CA3 * 6) + 1

c (is points)

ichoice(36) = 36 ! Voids in plus composite(pc) table generated by

c 36m(1)m(2) - 6m(1) - 6m(2) + 1 (CA3)(is points)

c (is points)

endif

c 43 test for All vv starred results, all pages

c (Vanitas Vector Points)

if (ichoice(43) .eq. 43) then

ichoice(2) = 2 ! The Twin prime Pivot Point table.

cg 2. The Twin prime Pivot Point table.

c Note: The Married Plus and Married Minus

c Pivot Point tables are identical to

c (The Twin prime Pivot Point table).

c Note: detected by common voids in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) + m(1) - m(2) = CA2 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c (Vanitas Vector Points)

ichoice(6) = 6 ! The prime Pivot Point table.

cg (includes the Pivot Points for pairs: (pp, mc) and (pc, mp) and (pp, mp))

c Note: The Pivot Points for pp are detected by common voids

c in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: The Pivot Points for mp are detected by voids in output of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

ichoice(8) = 8 ! The Plus prime Pivot Point table.

cg Note: detected by common voids in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c (Vanitas Vector Points)

ichoice(10) = 10 ! The Pivot Point table for Minus primes.

cg Note: detected by voids in

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

ichoice(12) = 12 ! The Lonesome prime Pivot Point table.

cg Pivot Points for (pp, mc) or (pc, mp) pairs

c detected by common voids in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c and Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c and

c detected by Pivot Point being a member of either (or both)

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c and being a void of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

ichoice(14) = 14 ! The Lonesome Plus prime Pivot Point table.

cg detected by Pivot Point being a common void in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c and Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

ichoice(16) = 16 ! Pivot Point table for Lonesome Minus primes.

cg detected by Pivot Point being a member of either (or both)

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c and being a void of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

ichoice(18) = 18 ! Pivot Point table for all composites.

c 18 Pivot Point table for all composites (pc's and mc's).

cg Pivot Point for pc detected by being a member of either (or both)

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c Pivot Point for mc detected by being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

ichoice(20) = 20 ! Plus Compromised Pivot Point table.

cg pc detected by Pivot Point being a member of either

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3 (or both)

c (Vanitas Vector Points)

ichoice(22) = 22 ! The Minus Composite Pivot Point table.

c 22 Pivot Point table for mc.

cg mc detected by Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

ichoice(25) = 25 ! The Pivot Point table generated by CA1

cg (Vanitas Vector Points)

ichoice(26) = 26 ! Voids in the Pivot Point table generated by CA1

cg = Chenault Algorithym I = 6m(1)m(2) + m(1) + m(2)

c (Vanitas Vector Points)

ichoice(29) = 29 ! The Pivot Point table for mc's can be generated

c by CA2 = 6m(1)m(2) + m(1) - m(2)

c (6 * (member of CA2)) - 1 = mc

c (Vanitas Vector Points)

c Note: is identical to the

c Pivot Point table generated by

c 6m(1)m(2) - m(1) + m(2)

ichoice(30) = 30 ! Voids in the Pivot Point table generated by CA2=

cg 6m(1)m(2) + m(1) - m(2)

c note: these voids are Pivot Points for mp

c (Vanitas Vector Points)

ichoice(33) = 33 ! The Pivot Point table generated by

cg 6m(1)m(2) - m(1) + m(2)

c (Vanita's Vector Points)

c Note: is identical to the

c Pivot Point table generated by

c 6m(1)m(2) + m(1) - m(2) = CA2

c (is identical to 29 output)

ichoice(34) = 34 ! Voids in the Pivot Point table generated by

cg 6m(1)m(2) - m(1) + m(2)

c is identical to 30 output.

c (Vanitas Vector Points)

ichoice(37) = 37 ! Pivot Point table generated by

cg 6m(1)m(2) - m(1) - m(2) = CA3

c (Vanitas Vector Points)

ichoice(38) = 38 ! Voids in the Pivot Point table generated by

cg 6m(1)m(2) - m(1) - m(2) = CA3

c (Vanitas Vector Points)

ichoice(39) = 39 ! Pivot Point table generated by combining the

cg 6m(1)m(2) + m(1) + m(2) = CA1

c and 6m(1)m(2) - m(1) - m(2) = CA3

c Note: ((member of either (or both) CA1 or CA3) * 6) + 1 = pc

c (Vanitas Vector Points)

ichoice(40) = 40 ! voids in Pivot Points table generated by

cg combining output from 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: ((commom void for CA1 and CA3) * 6) + 1 = pp

c (Vanitas Vector Points)

endif

c 44 test for All pages starred choices (is and Vanitas Vector)

if (ichoice(44) .eq. 44) then

do i = 1, 40 ! all starred choices

ichoice(i) = i

enddo

c keep going and start to process

endif

c

c 1. The Twin prime table.

cg Note: detected by common voids in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) + m(1) - m(2) = CA2 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: ((common void) * 6) + 1 = pp and

c ((common void) * 6) - 1 = mp

c (is points)

c

cg 2. The Twin prime Pivot Point table.

c Note: The Married Plus and Married Minus

c Pivot Point tables are identical to

c (The Twin prime Pivot Point table).

c Note: detected by common voids in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) + m(1) - m(2) = CA2 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c (Vanitas Vector Points)

c

cg 3. The Married Plus prime table.

c pp that are part of a twin prime pair

c Note: Twin primes are detected by common voids in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) + m(1) - m(2) = CA2 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: ((common void) * 6) + 1 is a married plus prime. (is points)

c

c 4. The Married Minus prime table.

cg mp that are part of a twin prime pair

c Note: Twin primes are detected by common voids in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) + m(1) - m(2) = CA2 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: ((common void) * 6) - 1 is a married minus prime. (is points)

c (is points)

c

c 5. The prime table

cg (includes the primes in (pp, mc) and (pc, mp) and (pp, mp))

c Note: The pp are detected by common voids

c in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((common void of CA1 and CA2) * 6) + 1) is a pp.

c Note: The mp are detected by voids in the output from

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((void of CA2) * 6) - 1) is a mp.

c (is points)

c

c 6. The prime Pivot Point table.

cg (includes the Pivot Points for pairs: (pp, mc) and (pc, mp) and (pp, mp))

c Note: The Pivot Points for pp are detected by common voids

c in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: The Pivot Points for mp are detected by voids in output of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

c

c 7. The Plus prime table.

cg Note: detected by common voids in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((common void of CA1 and CA3) * 6) + 1 = pp

c (is points)

c

c 8. The Plus prime Pivot Point table. (Vanita's Vector Points)

cg Note: detected by common voids in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c (Vanitas Vector Points)

c

c 9. The Minus prime table.

cg Note: detected by voids in

c 6m(1)m(2) + m(1) - m(2) = CA2

c (void in CA2) * 6) - 1 = mp

c (is points)

c

c 10. The Pivot Point table for Minus primes.

cg Note: detected by voids in

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

c

c 11. The Lonesome prime table.

cg (the primes in (pp, mc) and (pc, mp) pairs)

c (pp,mc) detected by Pivot Point being a common void in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c and Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c NOTE:((common void of CA1 and CA3) * 6) + 1 = pp

c ((member of CA2) * 6) - 1 = mc

c and

c (pc,mp) detected by Pivot Point being a member of either or both

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((member of either (or both) CA1 or CA3) * 6) + 1 = pc

c and Pivot Point being a void of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((void of CA2) * 6) - 1 = mp

c (is points)

c

c 12. The Lonesome prime Pivot Point table.

cg Pivot Points for (pp, mc) or (pc, mp) pairs

c detected by common voids in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c and Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c and

c detected by Pivot Point being a member of either (or both)

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c and being a void of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

c

c 13. The Lonesome Plus prime table.

cg identifies primes from (pp,mc) pairs

c (pp,mc) detected by Pivot Point being a common void in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c and Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((common void of CA1 and CA3) * 6) + 1 = pp

c ((member of CA2) * 6) - 1 = mc

c (is points)

c

c 14. The Lonesome Plus Pivot Point table.

cg detected by Pivot Point being a common void in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c and Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

c

c 15. The Lonesome Minus prime table.

cg identifies primes from (pc,mp) pairs

c detected by Pivot Point being a member of either (or both)

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((member of either (or both) CA1 or CA3) * 6) + 1 = pc

c and Pivot Point being a void of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((void of CA2) * 6) - 1 = mp

c (is points)

c

c 16. Pivot Point table for Lonesome Minus primes.

cg detected by Pivot Point being a member of either (or both)

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c and being a void of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

c

c 17. Composite table (all pc and all mc).

cg pc detected by Pivot Point being a member of either (or both)

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((member of either (or both) CA1 or CA3) * 6) + 1 = pc

c mc detected by Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((member of CA2) * 6) - 1 = mc

c (is points)

c

c 18. Pivot Point table for all composites(pc's and mc's).

cg Pivot Point for pc detected by being a member of either (or both)

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c Pivot Point for mc detected by being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

c

c 19. The pc table.

cg pc detected by Pivot Point being a member of either

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3 (or both)

c ((member of either (or both) CA1 or CA3) * 6) + 1 = pc

c (is points)

c

c 20. Plus Compromised Pivot Point table.

cg pc detected by Pivot Point being a member of either

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3 (or both)

c (Vanitas Vector Points)

c

c 21. mc table

cg mc detected by Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((member of CA2) * 6) - 1 = mc

c (is points)

c

c 22. Pivot Point table for mc.

cg mc detected by Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

c

c 23. The pc table generated by CA1

cg those pc detected by Pivot Point being a member of

c 6m(1)m(2) + m(1) + m(2) = CA1

c ((member of CA1) * 6) + 1 = pc

c (is points)

c

c 24. ((n * 6) + 1) Voids in pc table generated by (CA1 * 6) + 1

cg (is points)

c

c 25. The Pivot Point table generated by CA1

cg (Vanitas Vector Points)

c

c 26. Voids in the Pivot Point table generated by CA1

cg = Chenault Algorithym I = 6m(1)m(2) + m(1) + m(2)

c (Vanitas Vector Points)

c

c 27. The mc table is detected Pivot Point being generated by CA2

cg (is points)

c ((member of CA2) * 6) - 1 = mc

c (is points)

c

c 28. voids(mp) in mc table generated by 36m(1)m(2) +6m(1) -6m(2) -1

cg ((void of CA2) * 6) - 1 = mp

c (is points)

c

c 29. The Pivot Point table for mc's can be generated by

cg CA2 = 6m(1)m(2) + m(1) - m(2)

c (6 * (member of CA2)) - 1 = mc

c (Vanitas Vector Points)

c Note: is identical to the

c Pivot Point table generated by

c 6m(1)m(2) - m(1) + m(2)

c

c 30. Voids in the Pivot Point table generated by CA2 =

cg 6m(1)m(2) + m(1) - m(2)

c note: these voids are Pivot Points for mp

c (Vanita's Vector Points)

c

c 31. The mc table generated by 36m(1)m(2) - 6m(1) + 6m(2) - 1

cg is identical to 27 output since m(1) and m(2) are interchangeable.

c (is points)

c

c 32. ((n * 6) -1 ) Voids(these are mp) in the mc table generated by

cg 36m(1)m(2) - 6m(1) + 6m(2) -1

c is identical to 28 output.

c (is points)

c

c 33. The Pivot Point table generated by

cg 6m(1)m(2) - m(1) + m(2) = CA2

c (Vanita's Vector Points)

c Note: is identical to the

c Pivot Point table generated by

c 6m(1)m(2) + m(1) - m(2) = CA2

c (is identical to 29 output)

c

c 34. Voids in the Pivot Point table generated by

cg 6m(1)m(2) - m(1) + m(2)

c (identical to 30 output)

c (Vanita's Vector Points)

c

c 35. pc table generated by

cg 36m(1)m(2) - 6m(1) - 6m(2) + 1 = (CA3 * 6) + 1

c (is points)

c

c 36. ((n*6)+1) voids (possible pp) in pc table generated by

cg 36m(1)m(2) - 6m(1) - 6m(2) + 1

c (is points)

c

c 37. Pivot Point table generated by

cg 6m(1)m(2) - m(1) - m(2) = CA3

c (Vanitas Vector Points)

c

c 38. Voids in the Pivot Point table generated by

cg 6m(1)m(2) - m(1) - m(2) = CA3

c (Vanitas Vector Points)

c

c 39. Pivot Point table generated by combining the output from

cg 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: ((member of either (or both) CA1 or CA3) * 6) + 1 = pc

c (Vanitas Vector Points)

c

c 40. voids in Pivot Points table generated by

cg combining output from 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: ((commom void for CA1 and CA3) * 6) + 1 = pp

c (Vanitas Vector Points)

c

c *1 Twin prime table

cg Note: detected by common voids in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) + m(1) - m(2) = CA2 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: ((common void) * 6) + 1 = pp and

c ((common void) * 6) - 1 = mp

c (is points)

if (ichoice(1) .eq. 1) then

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) ' 1. Twin prime table (is points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, ' 1. Twin prime table (is points)'

endif

c do i = lowervv, uppervv

c print *, ' vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

do i = lowervv, uppervv ! find primes

if ((vv(i,2) .eq. 0) .and. (vv(i,1) .eq. 0) .and.

1 (vv(i,3) .eq. 0)) then

if (output .eq. 'F') then

write(1, *) ' twin prime at', ((6 * i) - 1),

1 ',',((6 * i) + 1)

else

print *, ' twin prime at ', ((6 * i) - 1), ' , ',

1 ((6 * i) + 1)

endif

endif

enddo

endif

c *2 Pivot Point table for Twin primes. (Vanitas Vector Points)

cg 2. The Twin prime Pivot Point table.

c Note: The Married Plus and Married Minus

c Pivot Point tables are identical to

c (The Twin prime Pivot Point table).

c Note: detected by common voids in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) + m(1) - m(2) = CA2 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c (Vanitas Vector Points)

if (ichoice(2) .eq. 2) then

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) ' 2. Pivot Point table for Twin primes. ',

1 ' (Vanitas Vector Points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, ' 2. Pivot Point table for Twin primes. ',

1 ' (Vanitas Vector Points)'

endif

c do i =lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

do i = lowervv, uppervv ! find primes

if ((vv(i,2) .eq. 0) .and. (vv(i,1) .eq. 0) .and.

1 (vv(i,3) .eq. 0)) then

if (output .eq. 'F') then

write (1, *) ' Pivot Point for twin prime at ',

1 'vv(', i, ')'

else

print *, ' Pivot Point for twin prime at ',

1 'vv(', i, ')'

endif

endif

enddo

endif

c *3 Married Plus prime table.

cg pp that are part of a twin prime pair

c Note: Twin primes are detected by common voids in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) + m(1) - m(2) = CA2 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: ((common void) * 6) + 1 is a married plus prime. (is points)

if (ichoice(3) .eq. 3) then

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) ' 3. Married Plus prime table. (is points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, ' 3. Married Plus prime table. (is points)'

endif

c do i = lowervv, uppervv

print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

1 vv(i,1), vv(i,2), vv(i,3)

c enddo

do i = lowervv, uppervv ! find primes

if ((vv(i,2) .eq. 0) .and. (vv(i,1) .eq. 0) .and.

1 (vv(i,3) .eq. 0)) then

if (output .eq. 'F') then

write (1, *) ' Married Plus prime at ', (6*i) + 1

else

print *, ' Married Plus prime at ', (6*i) + 1

endif

endif

enddo

endif

c *4 Married Minus prime table. (is points)

cg mp that are part of a twin prime pair

c Note: Twin primes are detected by common voids in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) + m(1) - m(2) = CA2 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: ((common void) * 6) - 1 is a married minus prime. (is points)

if (ichoice(4) .eq. 4) then

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) ' 4. Married Minus prime table. (is points) '

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, ' 4. Married Minus prime table. (is points) '

endif

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

do i = lowervv, uppervv ! find primes

if ((vv(i,2) .eq. 0) .and. (vv(i,1) .eq. 0) .and.

1 (vv(i,3) .eq. 0)) then

if (output .eq. 'F') then

write (1, *) ' Married Minus prime at ', (6*i)-1

else

print *, ' Married Minus prime at ', (6*i) - 1

endif

endif

enddo

endif

c Note: The Married Plus and Married Minus Pivot Point tables

c are identical to 2 (The Twin prime Pivot Point table).

c (Vanitas Vector Points)

c *5 prime table. (is points)

cg (includes the primes in (pp, mc) and (pc, mp) and (pp, mp))

c Note: The pp are detected by common voids

c in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((common void of CA1 and CA2) * 6) + 1) is a pp.

c Note: The mp are detected by voids in the output from

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((void of CA2) * 6) - 1) is a mp.

c (is points)

if (ichoice(5) .eq. 5) then

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) ' 5. prime table. (is points) '

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, ' 5. prime table. (is points) '

endif

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

do i = lowervv, uppervv ! find primes

if (vv(i,2) .eq. 0) then

if (output .eq. 'F') then

write (1, *) ' prime at ', ((6 * i) - 1)

else

print *, ' prime at ', ((6 * i) - 1)

endif

endif

if ((vv(i,1) .eq. 0) .and. (vv(i,3) .eq. 0)) then

if (output .eq. 'F') then

write (1, *) ' prime at ', ((6 * i) + 1)

else

print *, ' prime at ', ((6 * i) + 1)

endif

endif

enddo

endif

c *6 Pivot Point table for primes.

cg (includes the Pivot Points for pairs: (pp, mc) and (pc, mp) and (pp, mp))

c Note: The Pivot Points for pp are detected by common voids

c in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: The Pivot Points for mp are detected by voids in output of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

if (ichoice(6) .eq. 6) then

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) ' 6. Pivot Point table for primes. ',

1 ' (Vanitas Vector Points) '

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, ' 6. Pivot Point table for primes. ',

1 ' (Vanitas Vector Points) '

endif

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

do i = lowervv, uppervv ! find primes

if (vv(i,2) .eq. 0) then

if (output .eq. 'F') then

write (1, *) ' Pivot Point for minus prime at ',

1 i

else

print *, ' Pivot Point for minus prime at ', i

endif

endif

if ((vv(i,1) .eq. 0) .and. (vv(i,3) .eq. 0)) then

if (output .eq. 'F') then

write (1, *) ' Pivot point for plus prime at ',

1 i

else

print *, ' Pivot point for plus prime at ', i

endif

endif

enddo

endif

c *7 Plus prime table.

cg Note: detected by common voids in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((common void of CA1 and CA3) * 6) + 1 = pp

c (is points)

if (ichoice(7) .eq. 7) then

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) ' 7. Plus prime table. (is points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, ' 7. Plus prime table. (is points)'

endif

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

do i = lowervv, uppervv ! find primes

if ((vv(i,1) .eq. 0) .and. (vv(i,3) .eq. 0)) then

if (output .eq. 'F') then

write (1, *) ' plus prime at ', (6 * i) + 1

else

print *, ' plus prime at ', (6 * i) + 1

endif

endif

enddo

endif

c *8 Pivot Point table for Plus primes.

cg Note: detected by common voids in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c (Vanitas Vector Points)

if (ichoice(8) .eq. 8) then

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) ' 8. Pivot Point table for Plus primes',

1 ' (Vanitas Vector Points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, ' 8. Pivot Point table for Plus primes',

1 ' (Vanitas Vector Points)'

endif

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

do i = lowervv, uppervv ! find primes

if ((vv(i,1) .eq. 0) .and. (vv(i,3) .eq. 0)) then

if (output .eq. 'F') then

write (1, *) ' Pivot Point for Plus prime at ',i

else

print *, ' Pivot Point for Plus prime at ', i

endif

endif

enddo

endif

c *9 Minus prime table. (is points)

cg Note: detected by voids in

c 6m(1)m(2) + m(1) - m(2) = CA2

c (void in CA2) * 6) - 1 = mp

c (is points)

if (ichoice(9) .eq. 9) then

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) ' 9. Minus prime table. (is points) '

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, ' 9. Minus prime table. (is points) '

endif

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

do i = lowervv, uppervv ! find primes

if (vv(i,2) .eq. 0) then

if (output .eq. 'F') then

write (1, *) ' Minus prime at ', (6 * i ) - 1

else

print *, ' Minus prime at ', (6 * i ) - 1

endif

endif

enddo

endif

c *10 Pivot Point table for Minus primes.

cg Note: detected by voids in

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

if (ichoice(10) .eq. 10) then

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) ' 10. Pivot Point table for Minus primes. ',

1 ' (Vanitas Vector Points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, ' 10. Pivot Point table for Minus primes. ',

1 ' (Vanitas Vector Points)'

endif

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

do i = lowervv, uppervv ! find primes

if (vv(i,2) .eq. 0) then

if (output .eq. 'F') then

write (1, *) ' Pivot Point for Minus prime',

1 ' at', i

else

print *, ' Pivot Point for Minus prime at ', i

endif

endif

enddo

endif

c *11 Lonesome prime table.

cg (the primes in (pp, mc) and (pc, mp) pairs)

c (pp,mc) detected by Pivot Point being a common void in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c and Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c NOTE:((common void of CA1 and CA3) * 6) + 1 = pp

c ((member of CA2) * 6) - 1 = mc

c and

c (pc,mp) detected by Pivot Point being a member of either or both

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((member of either (or both) CA1 or CA3) * 6) + 1 = pc

c and Pivot Point being a void of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((void of CA2) * 6) - 1 = mp

c (is points)

if (ichoice(11) .eq. 11) then

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) ' 11. Lonesome prime table. (is points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, ' 11. Lonesome prime table. (is points)'

endif

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

do i = lowervv, uppervv ! find primes

if ((vv(i,2) .eq. 0) .and. ((vv(i,1) .ne. 0) .or.

1 (vv(i,3) .ne. 0))) then

if (output .eq. 'F') then

write (1, *) ' Lonesome prime at ',(6 * i ) - 1

else

print *, ' Lonesome prime at ', (6 * i ) - 1

endif

endif

if ((vv(i,2) .ne. 0) .and. ((vv(i,1) .eq. 0) .and.

1 (vv(i,3) .eq. 0))) then

if (output .eq. 'F') then

write (1, *) ' Lonesome prime at ',(6 * i ) +1

else

print *, ' Lonesome prime at ', (6 * i ) + 1

endif

endif

enddo

endif

c *12 Pivot Point table for Lonesome primes.

cg Pivot Points for (pp, mc) or (pc, mp) pairs

c detected by common voids in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c and Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c and

c detected by Pivot Point being a member of either (or both)

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c and being a void of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

if (ichoice(12) .eq. 12) then

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) ' 12. Pivot Point table for Lonesome primes.',

1 ' (Vanitas Vector Points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, ' 12. Pivot Point table for Lonesome primes.',

1 ' (Vanitas Vector Points)'

endif

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

do i = lowervv, uppervv ! find primes

if ((vv(i,2) .eq. 0) .and. ((vv(i,1) .ne. 0) .or.

1 (vv(i,3) .ne. 0))) then

if (output .eq. 'F') then

write (1, *) ' Pivot Point for Lonesome ',

1 'prime at ', i

else

print *, ' Pivot Point for Lonesome ',

1 'prime at ', i

endif

endif

if ((vv(i,2) .ne. 0) .and. ((vv(i,1) .eq. 0) .and.

1 (vv(i,3) .eq. 0))) then

if (output .eq. 'F') then

write (1, *) ' Pivot Point for Lonesome ',

1 'prime at ', i

else

print *, ' Pivot Point for Lonesome ',

1 'prime at ', i

endif

endif

enddo

endif

c *13 Lonesome Plus prime table.

cg identifies primes from (pp,mc) pairs

c (pp,mc) detected by Pivot Point being a common void in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c and Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((common void of CA1 and CA3) * 6) + 1 = pp

c ((member of CA2) * 6) - 1 = mc

c (is points)

if (ichoice(13) .eq. 13) then

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) ' 13. Lonesome Plus prime table. (is points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, ' 13. Lonesome Plus prime table. (is points)'

endif

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

do i = lowervv, uppervv ! find primes

if ((vv(i,2) .ne. 0) .and. ((vv(i,1) .eq. 0) .and.

1 (vv(i,3) .eq. 0))) then

if (output .eq. 'F') then

write (1, *) ' Lonesome Plus prime at ',

1 (6 * i) + 1

else

print *, ' Lonesome Plus prime at ', (6 * i) + 1

endif

endif

enddo

endif

c *14 Pivot Point table for Lonesome Plus primes.

cg detected by Pivot Point being a common void in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c and Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

if (ichoice(14) .eq. 14) then

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) ' 14. Pivot Point table for Lonesome Plus ',

1 'primes. (Vanitas Vector Points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, ' 14. Pivot Point table for Lonesome Plus ',

1 'primes. (Vanitas Vector Points)'

endif

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

do i = lowervv, uppervv ! find primes

if ((vv(i,2) .ne. 0) .and. ((vv(i,1) .eq. 0) .and.

1 (vv(i,3) .eq. 0))) then

if (output .eq. 'F') then

write (1, *) ' Pivot Point for Lonesome Plus ',

1 'prime at ', i

else

print *, ' Pivot Point for Lonesome Plus prime',

1 ' at ', i

endif

endif

enddo

endif

c *15 Lonesome Minus prime table.

cg identifies primes from (pc,mp) pairs

c detected by Pivot Point being a member of either (or both)

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((member of either (or both) CA1 or CA3) * 6) + 1 = pc

c and Pivot Point being a void of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((void of CA2) * 6) - 1 = mp

c (is points)

if (ichoice(15) .eq. 15) then

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) '15. Lonesome Minus prime table. (is points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, '15. Lonesome Minus prime table. (is points)'

endif

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

do i = lowervv, uppervv ! find primes

if ((vv(i,2) .eq. 0) .and. ((vv(i,1) .ne. 0) .or.

1 (vv(i,3) .ne. 0))) then

if (output .eq. 'F') then

write (1, *) ' Lonesome Minus prime at ',

1 (6 * i) - 1

else

print *, ' Lonesome Minus prime at ', (6 * i) - 1

endif

endif

enddo

endif

c *16 Pivot Point table for Lonesome Minus primes.

cg detected by Pivot Point being a member of either (or both)

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c and being a void of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

if (ichoice(16) .eq. 16) then

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) ' 16. Pivot Point table for Lonesome Minus ',

1 'primes. (Vanitas Vector Points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, ' 16. Pivot Point table for Lonesome Minus ',

1 'primes. (Vanitas Vector Points)'

endif

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

do i = lowervv, uppervv ! find primes

if ((vv(i,2) .eq. 0) .and. ((vv(i,1) .ne. 0) .or.

1 (vv(i,3) .ne. 0))) then

if (output .eq. 'F') then

write (1, *) ' Pivot Point for Lonesome Minus ',

1 'prime at ', i

else

print *, ' Pivot Point for Lonesome Minus ',

1 'prime at ', i

endif

endif

enddo

endif

c *17 Composite table (all pc and all mc).

cg pc detected by Pivot Point being a member of either (or both)

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((member of either (or both) CA1 or CA3) * 6) + 1 = pc

c mc detected by Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((member of CA2) * 6) - 1 = mc

c (is points)

if (ichoice(17) .eq. 17) then

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) ' 17. (n*6)+-1 composite table. (is points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, ' 17. (n*6)+-1 composite table. (is points)'

endif

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

do i = lowervv, uppervv ! find primes

if (vv(i,2) .ne. 0) then

if (output .eq. 'F') then

write (1, *) ' mc at ', (6 * i) - 1

else

print *, ' mc at ', (6 * i) - 1

endif

endif

if ((vv(i,1) .ne. 0) .or. (vv(i,3) .ne. 0)) then

if (output .eq. 'F') then

write (1, *) ' pc at ', (6 * i) + 1

else

print *, ' pc at ', (6 * i) + 1

endif

endif

enddo

endif

if (ichoice(18) .eq. 18) then

c *18 Pivot Point table for all composites (pc's and mc's).

cg Pivot Point for pc detected by being a member of either (or both)

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c Pivot Point for mc detected by being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) ' 18. Pivot Point table for (n*6)+-1 ',

1 'composites. (Vanitas Vector Points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, ' 18. Pivot Point table for (n*6)+-1 ',

1 'composites. (Vanitas Vector Points)'

endif

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

do i = lowervv, uppervv ! find primes

if (vv(i,2) .ne. 0) then

if (output .eq. 'F') then

write (1, *) ' Pivot Point for mc at ', i

else

print *, ' Pivot Point for mc at ', i

endif

endif

if ((vv(i,1) .ne. 0) .or. (vv(i,3) .ne. 0)) then

if (output .eq. 'F') then

write (1, *) ' Pivot Point for pc at ', i

else

print *,' Pivot Point for pc at ', i

endif

endif

enddo

endif

if (ichoice(42) .eq. 42) go to 65

if (ichoice(43) .eq. 43) go to 65

if (ichoice(44) .eq. 44) go to 65

50 print *, ' Page 2 of choices'

print *, ' '

print *, '45 Examine starred choices made from page 1 in this '

print *, ' version of program Segment Sieve, then repeat page 2'

print *, '46 Clear Page 1 Choices and Repeat page 1'

print *, '47 Keep Page 1 Choices and Repeat page 1'

print *, ' '

print *, '*19 The pc table.',

c a pc is detected by a Pivot Point being a member of either

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c (is points)

1 ' (is points)'

print *, '*20 Pivot Point table for pc.',

c a Pivot Point table for pc's is detected by being a

c member of either

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

1 ' (Vanitas Vector Points)'

print *, '*21 mc table.'

c 21. mc table

cg mc detected by Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((member of CA2) * 6) - 1 = mc

c (is points)

print *, ' each point generated by ((CA2 member) * 6) - 1',

1 ' (is points)'

print *, '*22 Pivot Point table for mc.',

c 22. Pivot Point table for mc.

cg mc detected by Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

1 ' (Vanitas Vector Points)'

print *, '*23 The pc table generated by ',

cg pc detected by Pivot Point being a member of

c 6m(1)m(2) + m(1) + m(2) = CA1

c ((member of CA1) * 6) + 1 = pc

c (is points)

1 '36m(1)m(2) + 6m(1) + 6m(2) + 1 = (CA1 * 6) + 1'

print *, ' (is points)'

print *, '*24 ((n * 6) + 1) Voids in pc table generated by ',

c *24 ((n * 6) + 1) Voids in pc table generated by (CA1 * 6) + 1

cg (is points)

1 '(CA1 * 6) + 1'

print *, ' (is points)'

print *, '*25 The Pivot Point table generated by'

c The Pivot Point table generated by CA1

cg (Vanitas Vector Points)

print *, ' 6m(1)m(2) + m(1) + m(2) = CA1',

1 ' (Vanitas Vector Points)'

print *, '*26 Voids in the Pivot Point table generated by CA1'

c 26. Voids in the Pivot Point table generated by CA1

cg = 6m(1)m(2) + m(1) + m(2)

c (Vanitas Vector Points)

print *, ' 6m(1)m(2) + m(1) + m(2) = CA1',

1 ' (Vanitas Vector Points)'

print *, ' '

print *, '*27 The mc table generated by'

c The mc table detected by Pivot Point generated by CA2

c ((member of CA2) * 6) - 1 = mc

c (is points)

print *, ' 36m(1)m(2) + 6m(1) - 6m(2) - 1 '

print *, ' ((member of CA2) * 6) - 1 = mc'

print *, ' (is points)'

print *, '*28 Voids (mp pp) in mc table generated by'

c 28. voids(mp) in mc table generated by 36m(1)m(2) +6m(1) -6m(2) -1

cg ((void of CA2) * 6) - 1 = mp

c (is points)

print *, ' 36m(1)m(2) + 6m(1) - 6m(2) - 1 '

print *, ' ((void of CA2) * 6) - 1 = mp'

print *, ' (is points)'

print *, '*29 The Pivot Point table for mc can be generated by ',

c *29 The Pivot Point table for mc's can be generated by

cg CA2 = 6m(1)m(2) + m(1) - m(2)

c (6 *(member of CA2)) - 1 = mc

c (Vanitas Vector Points)

c Note: is identical to the

c Pivot Point table generated by

c 6m(1)m(2) - m(1) + m(2)

1 ' CA2 = 6m(1)m(2) + m(1) - m(2)'

print *, ' (6 *(member of CA2)) - 1 = mc',

1 ' (Vanitas Vector Points)'

print *, '*30 Voids in the Pivot Point table generated by'

c *30 Voids in the Pivot Point table generated by CA2 =

cg 6m(1)m(2) + m(1) - m(2)

c note: these voids are Pivot Points for mp

c (Vanitas Vector Points)

print *, ' 6m(1)m(2) + m(1) - m(2) = CA2',

1 ' (Vanitas Vector Points)'

print *, ' note: these voids are Pivot Points for mp'

print *, '*31 The mc table generated by '

c *31 The mc table generated by 36m(1)m(2) - 6m(1) + 6m(2) - 1

cg is identical to 27 output since m(1) and m(2) are interchangeable.

c (is points)

print *, ' 36m(1)m(2) - 6m(1) + 6m(2) - 1',

1 'is identical to 27 output. (is points)'

print *, ' '

print *, '48 All starred choices on page 2'

print *, ' '

print *, 'Type line number(s) of outputs desired from this page ',

1 ' , separated by commas.'

print *, ' (use only 1 line) (do not type * or spaces(blanks)'

read (5, '(a)') choices

oldpos = 0 ! indicate that no commas have been in string found so far

if (choices(1:1) .eq. ' ') go to 60 ! blank line

do i = 1, 80

if ((choices(i:i) .eq. ',') .or. (choices(i:i) .eq. ' ')) then

c if a comma is found, process here

c if a blank is found, we assume last input

if ((i - oldpos) .eq. 3) then

isubscript = ((ichar(choices((oldpos+1):(i-2)))) -48)*10

isubscript = isubscript +

1 (ichar(choices((oldpos+2):(i-1)))) - 48

ichoice (isubscript) = isubscript

else

ichoice((ichar(choices((oldpos+1):(i-1)))) - 48) ! turn on option

1 = (ichar(choices((oldpos+1):(i-1)))) - 48

endif

oldpos = i ! mark position of this comma

endif

if (choices(i:i) .eq. ' ') go to 60 ! if we have blank, exit parse

enddo

60 oldpos = 0 ! clear for next string test

c 45 Examine starred choices made from page 1 in this version of program

c Segment Sieve, then repeat page 2

if (ichoice(45) .eq. 45) then

print *, 'Starred choices you made from page 1 were:'

if (ichoice(1) .eq. 1)

1 print *, ' 1 The Twin prime table. (is points)'

cg Note: detected by common voids in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) + m(1) - m(2) = CA2 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: ((common void) * 6) + 1 = pp and

c ((common void) * 6) - 1 = mp

c (is points)

if (ichoice(2) .eq. 2) then

cg 2. The Twin prime Pivot Point table.

c Note: The Married Plus and Married Minus

c Pivot Point tables are identical to

c (The Twin prime Pivot Point table).

c Note: detected by common voids in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) + m(1) - m(2) = CA2 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c (Vanitas Vector Points)

print *, ' 2 The Twin prime Pivot Point table'

print *, 'Note: The Married Plus and Married Minus Pivot'

print *, ' Point tables are identical to '

print *, ' (The Twin prime Pivot Point table).'

print *, ' (Vanitas Vector Points)'

endif

if (ichoice(3) .eq. 3)

cg pp that are part of a twin prime pair

c Note: Twin primes are detected by common voids in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) + m(1) - m(2) = CA2 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: ((common void) * 6) + 1 is a married plus prime. (is points)

1 print *, ' 3 The Married Plus prime table. (is points)'

if (ichoice(4) .eq. 4)

cg mp that are part of a twin prime pair

c Note: Twin primes are detected by common voids in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) + m(1) - m(2) = CA2 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: ((common void) * 6) - 1 is a married minus prime. (is points)

1 print *, ' 4 The Married Minus prime table. (is points)'

if (ichoice(5) .eq. 5)

cg (includes the primes in (pp, mc) or (pc, mp) or (pp, mp))

cg (includes the primes in (pp, mc) or (pc, mp) or (pp, mp))

c Note: The pp are detected by common voids

c in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((common void of CA1 and CA2) * 6) + 1) is a pp.

c Note: The mp are detected by voids in the output from

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((void of CA2) * 6) - 1) is a mp.

c (is points)

1 print *, ' 5 The prime table. (is points)'

if (ichoice(6) .eq. 6)

cg includes Pivot Points for (pp, mc) or (pc, mp) or (pp, mp)

c Note: The Pivot Points for pp are detected by common voids

c in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: The Pivot Points for mp are detected by voids in output of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

1 print *, ' 6 The prime Pivot Point table. ',

2 '(Vanitas Vector Points)'

if (ichoice(7) .eq. 7)

cg Note: detected by common voids in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((common void of CA1 and CA3) * 6) + 1 = pp

c (is points)

1 print *, ' 7 The Plus prime table. (is points)'

if (ichoice(8) .eq. 8)

cg Note: detected by common voids in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c (Vanitas Vector Points)

1 print *, ' 8 The Plus prime Pivot Point table. ',

2 '(Vanitas Vector Points)'

cg Note: detected by voids in

c 6m(1)m(2) + m(1) - m(2) = CA2

c (void) * 6) - 1 = mp (is points)

if (ichoice(9) .eq. 9)

cg Note: detected by voids in

c 6m(1)m(2) + m(1) - m(2) = CA2

c (void in CA2) * 6) - 1 = mp

c (is points)

1 print *, ' 9 The Minus prime table. (is points)'

if (ichoice(10) .eq. 10)

cg Note: detected by voids in

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

1 print *, '10 The Minus prime Pivot Point table. ',

2 '(Vanitas Vector Points)'

if (ichoice(11) .eq. 11)

cg (the primes in (pp, mc) and (pc, mp) pairs)

c (pp,mc) detected by Pivot Point being a common void in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c and Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c NOTE:((common void of CA1 and CA3) * 6) + 1 = pp

c ((member of CA2) * 6) - 1 = mc

c and

c (pc,mp) detected by Pivot Point being a member of either or both

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((member of either (or both) CA1 or CA3) * 6) + 1 = pc

c and Pivot Point being a void of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((void of CA2) * 6) - 1 = mp

c (is points)

1 print *, '11 The Lonesome prime table. (is points)'

if (ichoice(12) .eq. 12)

cg Pivot Points for (pp, mc) or (pc, mp) pairs

c detected by common voids in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c and Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c and

c detected by Pivot Point being a member of either (or both)

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c and being a void of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

1 print *, '12 The Lonesome prime Pivot Point table. ',

2 '(Vanitas Vector Points)'

if (ichoice(13) .eq. 13)

cg identifies primes from (pp,mc) pairs

c (pp,mc) detected by Pivot Point being a common void in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c and Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((common void of CA1 and CA3) * 6) + 1 = pp

c ((member of CA2) * 6) - 1 = mc

c (is points)

1 print *, '13 The Lonesome Plus prime table. (is points)'

if (ichoice(14) .eq. 14)

cg detected by Pivot Point being a common void in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c and Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

1 print *, '14 The Lonesome Plus prime Pivot Point table ',

2 '(Vanitas Vector Points)'

if (ichoice(15) .eq. 15)

cg identifies primes from (pc,mp) pairs

c detected by Pivot Point being a member of either (or both)

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((member of either (or both) CA1 or CA3) * 6) + 1 = pc

c and Pivot Point being a void of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((void of CA2) * 6) - 1 = mp

c (is points)

1 print *, '15 The Lonesome Minus prime table. (is points)'

if (ichoice(16) .eq. 16)

cg detected by Pivot Point being a member of either

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c and being a void of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

1 print *, '16 The Lonesome Minus prime Pivot Point table.',

2 '(Vanitas Vector Points)'

if (ichoice(17) .eq. 17)

c *17 Composite table (all pc and all mc).

cg pc detected by Pivot Point being a member of either (or both)

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((member of either (or both) CA1 or CA3) * 6) + 1 = pc

c mc detected by Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((member of CA2) * 6) - 1 = mc

c (is points)

1 print *, '17 The Composite table (all pc and all mc).'

if (ichoice(18) .eq. 18) then

c *18 Pivot Point table for all composites (pc's and mc's).

cg Pivot Point for pc detected by being a member of either (or both)

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c Pivot Point for mc detected by being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

print *, '18 Pivot Point table for all composites (pc ',

1 'and mc) '

print *, ' (Vanitas Vector Points)'

endif

if (ichoice(19) .eq. 19)

1 print *, '19 The pc table.'

cg pc detected by Pivot Point being a member of either

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3 (or both)

c ((member of either (or both) CA1 or CA3) * 6) + 1 = pc

c (is points)

if (ichoice(20) .eq. 20) then

cg pc detected by Pivot Point being a member of either

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3 (or both)

c (Vanitas Vector Points)

print *, ' Note: This is the combination of points ',

1 'generated'

print *, ' by Chenault Algorithyms I and III.'

print *, ' (Vanitas Vector Points)'

endif

if (ichoice(21) .eq. 21) then

c 21 mc table

cg mc detected by Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((member of CA2) * 6) - 1 = mc

c (is points)

print *, '21 The mc table. (is points)'

print *, ' ((each point generated by CA2) * 6) + 1 ',

1 ' = mc'

endif

if (ichoice(22) .eq. 22) then

c 22. Pivot Point table for mc.

cg mc detected by Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

print *, '22 Pivot Point table for mc. '

print *, ' mc detected by Pivot Point being a member'

print *, ' of 6m(1)m(2) + m(1) - m(2) = CA2'

print *, ' (Vanitas Vector Points)'

endif

if (ichoice(23) .eq. 23) then

cg those pc detected by Pivot Point being a member of

c 6m(1)m(2) + m(1) + m(2) = CA1

c ((member of CA1) * 6) + 1 = pc

c (is points)

print *, '((member of CA1) * 6) + 1 = pc'

print *, ' (is points)'

endif

if (ichoice(24) .eq. 24) then

c ((n * 6) + 1) Voids in pc table generated by (CA1 * 6) + 1

cg (is points)

print *, '*24 ((n * 6) + 1) Voids in pc table generated by',

1 ' (CA1 * 6) + 1'

print *, ' (is points)'

endif

if (ichoice(25) .eq. 25) then

c The Pivot Point table generated by CA1

cg (Vanitas Vector Points)

print *, '25 The Pivot Point table generated by CA1'

print *, ' (Vanitas Vector Points)'

endif

if (ichoice(26) .eq. 26) then

c 26. Voids in the Pivot Point table generated by CA1

cg = Chenault Algorithym I = 6m(1)m(2) + m(1) + m(2)

c (Vanitas Vector Points)

print *, '26 Voids in the Pivot Point ',

1 'table generated by CA1 = '

print *, '6m(1)m(2) + m(1) + m(2) '

print *, ' (Vanitas Vector Points)'

endif

if (ichoice(27) .eq. 27) then

c The mc table is detected by a Pivot Point being generated by

c CA2.

c ((member of CA2) * 6) - 1 = mc

c (is points)

endif

if (ichoice(28) .eq. 28) then

c 28. voids(mp) in mc table generated by 36m(1)m(2) +6m(1) -6m(2) -1

cg ((void of CA2) * 6) - 1 = mp

c (is points)

print *, '28 Voids(mp) in mc table generated by'

print *, ' 36m(1)m(2) + 6m(1) - 6m(2) - 1 ',

1 '= (CA2 * 6) - 1 (is points)'

endif

if (ichoice(29) .eq. 29) then

c 29. The Pivot Point table for mc's can be generated by

cg CA2 = 6m(1)m(2) + m(1) - m(2)

c (6 * (member of CA2)) - 1 = mc

c (Vanitas Vector Points)

c Note: is identical to the

c Pivot Point table generated by

c 6m(1)m(2) - m(1) + m(2)

print *, '29 The Pivot Point table for mc is ',

1 'identical to the'

print *, 'Pivot Point table generated by '

print *, '6m(1)m(2) + m(1) - m(2) = CA2'

print *, ' (Vanitas Vector Points)'

endif

if (ichoice(30) .eq. 30) then

c 30 Voids in the Pivot Point table generated by CA2 =

cg 6m(1)m(2) + m(1) - m(2)

c note: these voids are Pivot Points for mp

c (Vanitas Vector Points)

print *, '30 Voids in the Pivot Point table generated by'

print *, ' 6m(1)m(2) + m(1) - m(2) = CA2 '

print *, ' (Vanitas Vector Points)'

endif

if (ichoice(31) .eq. 31) then

c 31. The mc table generated by 36m(1)m(2) - 6m(1) + 6m(2) - 1

cg is identical to 27 output since m(1) and m(2) are interchangeable.

c (is points)

print *, '31 The mc composite table generated by'

print *, ' 36m(1)m(2) - 6m(1) + 6m(2) - 1 ',

1 'is identical to 27 output. (is points)'

endif

if (ichoice(32) .eq. 32) then

c 32. ((n * 6) -1 ) Voids(these are mp) in the mc table generated by

cg 36m(1)m(2) - 6m(1) + 6m(2) -1

c is identical to 28 output.

c (is points)

print *, '32 Voids(mp) in mc table generated by'

print *, ' 36m(1)m(2) - 6m(1) + 6m(2) - 1 ',

1 'is identical to 28 output. (is points)'

endif

if (ichoice(33) .eq. 33) then

c 33. The Pivot Point table generated by

cg 6m(1)m(2) - m(1) + m(2) = CA2

c (Vanita's Vector Points)

c Note: is identical to the

c Pivot Point table generated by

c 6m(1)m(2) + m(1) - m(2) = CA2

c (is identical to 29 output)

print *, '33 The Pivot Point table ',

1 'generated by'

print *, ' 6m(1)m(2) - m(1) + m(2)'

print *, ' is identical to 29 output.'

print *, ' (Vanitas Vector Points)'

endif

if (ichoice(34) .eq. 34) then

c 34. Voids in the Pivot Point table generated by

cg 6m(1)m(2) - m(1) + m(2)

c (identical to 30 output)

c (Vanita's Vector Points)

print *, '34 Voids in the Pivot Point ',

1 'table generated by'

print *, ' 6m(1)m(2) - m(1) + m(2) '

print *, ' is identical to 30 output.',

1 ' (Vanitas Vector Points)'

endif

if (ichoice(35) .eq. 35) then

c 35. pc table generated by

cg 36m(1)m(2) - 6m(1) - 6m(2) + 1 = (CA3 * 6) + 1

c (is points)

print *, '35 The pc table generated by '

print *, '36m(1)m(2) - 6m(1) - 6m(2) + 1 '

print *, ' = (6 * (member of CA3)) + 1 ',

1 ' (is points)'

endif

if (ichoice(36) .eq. 36) then

c 36. ((n*6)+1) voids (possible pp) in pc table generated by

cg 36m(1)m(2) - 6m(1) - 6m(2) + 1

c (is points)

print *, '36 ((n*6)+1) voids (possible pp) in pc table '

1 'generated by '

print *, '36m(1)m(2) - 6m(1) - 6m(2) + 1 (CA3) ',

1 '(is points)'

endif

if (ichoice(37) .eq. 37) then

c 37. Pivot Point table generated by

cg 6m(1)m(2) - m(1) - m(2) = CA3

c (Vanitas Vector Points)

print *, '37 Pivot Point table generated by '

print *, ' 6m(1)m(2) - m(1) - m(2) = CA3 '

print *, ' (Vanitas Vector Points)'

endif

if (ichoice(38) .eq. 38) then

c 38. Voids in the Pivot Point table generated by

cg 6m(1)m(2) - m(1) - m(2) = CA3

c (Vanitas Vector Points)

print *, '38 Voids in the Pivot Point table generated by '

print *, ' 6m(1)m(2) - m(1) - m(2) = CA3 '

print *, ' (Vanitas Vector Points)'

endif

if (ichoice(39) .eq. 39) then

print *, '39 The plus compromised Pivot Point table ',

1 'generated by combining the output from'

print *, '6m(1)m(2) + m(1) + m(2) = CA1 and'

print *, '6m(1)m(2) - m(1) - m(2) = CA3'

print *, ' (Vanitas Vector Points)'

endif

if (ichoice(40) .eq. 40) then

print *, '40 Voids(pp) in the Composite Pivot Point table',

1 ' generated by combining the output from'

print *, '6m(1)m(2) + m(1) + m(2) = CA1 and'

print *, '6m(1)m(2) - m(1) - m(2) = CA3'

print *, ' (Vanitas Vector Points)'

endif

ichoice(45) = 0 ! reset examine option

print *, 'Press return when ready to continue.'

pause

go to 50 ! top of page 2

endif

c 46 Clear Page 1 Choices and Repeat page 1

if (ichoice(46) .eq. 46) then

do i = 1, 18

ichoice(i) = 0

enddo

ichoice(46) = 0 ! reset clear option

go to 30 ! top of page 1

endif

c 47 Keep Page 1 Choices and Repeat page 1

if (ichoice(47) .eq. 47) then

ichoice(47) = 0

go to 30 ! top of page 1

endif

c 48 test for Chose all starred choices on this page

if (ichoice(48) .eq. 48) then

do i = 19, 31

ichoice(i) = i

enddo

ichoice(48) = 0

endif

c *19 pc table

cg pc detected by Pivot Point being a member of either

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3 (or both)

c ((member of either (or both) CA1 or CA3) * 6) + 1 = pc

c (is points)

65 if (ichoice(19) .eq. 19) then

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) ' 19. pc table. (is points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, ' 19. pc table. (is points)'

endif

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

do i = lowervv, uppervv ! find primes

if ((vv(i,1) .ne. 0) .or. (vv(i,3) .ne. 0)) then

if (output .eq. 'F') then

write (1, *) ' pc at ', (6 * i) + 1

else

print *, ' pc at ', (6 * i)+ 1

endif

endif

enddo

endif

c *20 Pivot Point table for pcs.

cg pc detected by Pivot Point being a member of either

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3 (or both)

c (Vanitas Vector Points)

if (ichoice(20) .eq. 20) then

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) ' 20. Pivot Point table for pc(s).',

1 ' (Vanitas Vector Points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, ' 20. Pivot Point table for pc(s).',

1 ' (Vanitas Vector Points)'

endif

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

do i = lowervv, uppervv ! find primes

if ((vv(i,1) .ne. 0) .or. (vv(i,3) .ne. 0)) then

if (output .eq. 'F') then

write (1, *) ' Plus Compromised Pivot Point at ', i

else

print *, ' Plus Compromised Pivot Point at ', i

endif

endif

enddo

endif

c *21 mc table

cg mc detected by Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((member of CA2) * 6) - 1 = mc

c (is points)

if (ichoice(21) .eq. 21) then

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) ' 21. The Minus composite ((n*6) - 1) table.',

1 ' (is points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, ' 21. The Minus composite ((n*6) - 1) table.',

1 ' (is points)'

endif

do i = lowervv, uppervv

if (vv(i,2) .ne. 0) then

if (output .eq. 'F') then

write (1, *) 'mc at ', (6*i)-1, ' (is points)'

else

print *, 'mc at ', (6*i)-1, ' (is points)'

endif

endif

enddo

endif

c *22 Pivot Point table for mc.

cg mc detected by Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

if (ichoice(22) .eq. 22) then

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) ' 22. Pivot Point table for mc(s).',

1 ' (Vanitas Vector Points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, ' 22. Pivot Point table for mc(s).',

1 ' (Vanitas Vector Points)'

endif

do i = lowervv, uppervv

if (vv(i,2) .ne. 0) then

if (output .eq. 'F') then

write (1, *) 'Pivot Point for mc at', i

else

print *,'Pivot Point for mc at', i

endif

endif

enddo

endif

c *23 The pc table generated by CA1 = 36m(1)m(2) + 6m(1) + 6m(2) + 1

cg those pc detected by Pivot Point being a member of

c 6m(1)m(2) + m(1) + m(2) = CA1

c ((member of CA1) * 6) + 1 = pc

c (is points)

if (ichoice(23) .eq. 23) then

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) ' 23. The pc table generated by ',

1 '36m(1)m(2) + 6m(1) + 6m(2) + 1 '

write (1, *) ' (is points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, ' 23. The pc table generated by ',

1 '36m(1)m(2) + 6m(1) + 6m(2) + 1 '

print *, ' (is points)'

endif

do i = lowervv, uppervv

if (vv(i,1) .ne. 0) then

if (output .eq. 'F') then

write (1, *) '(6 * ', i, ') + 1 pc at ', (6 * i) + 1

else

print *, '(6 * ', i, ') + 1 pc at ', (6 * i) + 1

endif

endif

enddo

endif

if (ichoice(24) .eq. 24) then

c *24 ((n * 6) + 1) Voids in pc table generated by (CA1 * 6) + 1

cg (is points)

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) '24. (n * 6) + 1 voids in the pc table ',

1 ' generated by 36m(1)m(2) + 6m(1) + 6m(2) + 1'

write (1, *) ' (is points)'

write (1, *) ' note: If a void from 24 is also',

1 ' a void of'

write (1, *) ' 36m(1)m(2) - 6m(1) - 6m(2) + 1',

1 ', we have a plus prime.'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, '24. (n * 6) + 1 voids in the pc table ',

1 ' generated by 36m(1)m(2) + 6m(1) + 6m(2) + 1'

print *, ' (is points)'

print *, ' note: If a void from 24 is also',

1 ' a void of'

print *, ' 36m(1)m(2) - 6m(1) - 6m(2) + 1,',

1 ' we have a plus prime.'

endif

do i = lowervv, uppervv

if (vv(i,1) .eq. 0) then

if (output .eq. 'F') then

write (1, *) '(6 * ', i, ') + 1 possible prime ',

1 'at ', (6 * i) + 1

else

print *, '(6 * ', i, ') + 1 possible prime at ',

1 (6 * i) + 1

endif

endif

enddo

endif

c *25 The Pivot Point table generated by CA1

cg (Vanitas Vector Points)

if (ichoice(25) .eq. 25) then

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) '25. Pivot Point table generated by ',

1 'CA1 = 6m(1)m(2) + m(1) + m(2)'

write (1, *)' (Vanitas Vector Points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, '25. Pivot Point table generated by ',

1 'CA1 = 6m(1)m(2) + m(1) + m(2)'

print *, ' (Vanitas Vector Points)'

endif

do i = lowervv, uppervv

if (vv(i,1) .ne. 0) then

if (output .eq. 'F') then

write (1, *) 'CA1 Pivot Point at ', i

else

print *, 'CA1 Pivot Point at ', i

endif

endif

enddo

endif

c *26 Voids in the Pivot Point table generated by CA1 = Chenault Algorithym I

cg = 6m(1)m(2) + m(1) + m(2)

c (Vanitas Vector Points)

if (ichoice(26) .eq. 26) then

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) '26. Voids in the Pivot Point table ',

1 'generated by CA1 = 6m(1)m(2) + m(1) + m(2)'

write (1, *)' (Vanitas Vector Points)'

write (1, *) ' note: If the voids from CA1 are also',

1 ' voids of CA3 = '

write (1, *) ' 6m(1)m(2) - m(1) - m(2), we have a ',

1 'Pivot Point for Plus primes.'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, '26. Voids in the Pivot Point table ',

1 'generated by CA1 = 6m(1)m(2) + m(1) + m(2)'

print *, ' (Vanitas Vector Points)'

print *, ' note: If the voids from CA1 are also',

1 ' voids of CA3 = '

print *, ' 6m(1)m(2) - m(1) - m(2), we have a',

1 'Pivot Point for Plus primes.'

endif

do i = lowervv, uppervv

if (vv(i,1) .eq. 0) then

if (output .eq. 'F') then

write (1, *) 'Chenault Algorithm I (CA1) void at ', i

else

print *, 'Chenault Algorithm I (CA1) void at ', i

endif

endif

enddo

endif

if (ichoice(27) .eq. 27) then

c 27 The mc table is detected by a Pivot Point being generated by CA2

cg ((member of CA2) * 6) - 1 = mc

c (is points)

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) '27. The mc table generated by (6 * CA2) -',

1 ' 1 = 36m(1)m(2) + 6m(1) - 6m(2) -1'

write (1, *)' Note: All mc are generated. '

write (1, *)' (is points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, '27. The mc table generated by (6 * CA2) -',

1 ' 1 = 36m(1)m(2) + 6m(1) - 6m(2) -1'

print *, ' Note: All mc are generated. '

print *, ' (is points)'

endif

do i = lowervv, uppervv

if (vv(i,2) .ne. 0) then

if (output .eq. 'F') then

write (1, *) '(6 * ', i, ') - 1 mc at ', (6 * i) - 1

else

print *, '(6 * ', i, ') - 1 mc at ', (6 * i) - 1

endif

endif

enddo

endif

if (ichoice(28) .eq. 28) then

c 28. voids(mp) in mc table generated by 36m(1)m(2) +6m(1) -6m(2) -1

cg ((void of CA2) * 6) - 1 = mp

c (is points)

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) '28. ((n * 6) -1) voids in mc table generated',

1 ' by 36m(1)m(2) +6m(1) -6m(2) -1'

write (1, *) ' = (CA2 * 6) - 1 (is points)'

write (1, *) ' note: identifies all minus primes.'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, '28. ((n * 6) -1) voids in mc table generated',

1 ' by 36m(1)m(2) +6m(1) -6m(2) -1'

print *, ' = (CA2 * 6) - 1 (is points)'

print *, ' note: identifies all minus primes.'

endif

do i = lowervv, uppervv

if (vv(i,2) .eq. 0) then

if (output .eq. 'F') then

write (1, *) '(6 * ', i, ') - 1 minus prime(mp) at ',

1 (6 * i) - 1

else

print *, '(6 * ', i, ') - 1 minus prime(mp) at ',

1 (6 * i) - 1

endif

endif

enddo

endif

c *29 The Pivot Point table for mc's can be generated by

cg CA2 = 6m(1)m(2) + m(1) - m(2)

c (6 *(member of CA2)) - 1 = mc

c (Vanitas Vector Points)

c Note: is identical to the

c Pivot Point table generated by

c 6m(1)m(2) - m(1) + m(2)

if (ichoice(29) .eq. 29) then

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *)' 29. Pivot Point table for mcs ',

1 'generated by'

write (1, *) ' 6m(1)m(2) + m(1) - m(2) = CA2'

1 ' (Vanitas Vector Points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, ' 29. Pivot Point table for mcs ',

1 'generated by'

print *, ' 6m(1)m(2) + m(1) - m(2) = CA2'

1 ' (Vanitas Vector Points)'

endif

do i = lowervv, uppervv

if (vv(i,2) .ne. 0) then

print *, 'Pivot Point for mc at ', i

if (output .eq. 'F') then

write (1, *) 'Pivot Point for mc at ', i

else

print *, 'Pivot Point for mc at ', i

endif

endif

enddo

endif

c *30 Voids in the Pivot Point table generated by CA2 =

cg 6m(1)m(2) + m(1) - m(2)

c note: these voids are Pivot Points for mp

c (Vanitas Vector Points)

if (ichoice(30) .eq. 30) then

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *)'30. voids(pivot points for mp) in the Pivot ',

1 'Point table generated by'

write (1, *) ' 6m(1)m(2) + m(1) - m(2) = CA2'

1 ' (Vanitas Vector Points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, '30. voids(pivot points for mp) in the Pivot ',

1 'Point table generated by'

print *, ' 6m(1)m(2) + m(1) - m(2) = CA2'

1 ' (Vanitas Vector Points)'

endif

do i = lowervv, uppervv

if (vv(i,2) .eq. 0) then

if (output .eq. 'F') then

write (1, *) 'Pivot Point of minus prime at ', i

else

print *, 'Pivot Point of minus prime at ', i

endif

endif

enddo

endif

c *31 The mc table generated by 36m(1)m(2) - 6m(1) + 6m(2) - 1

cg is identical to 27 output since m(1) and m(2) are interchangeable.

c (is points)

if (ichoice(31) .eq. 31) then

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *)' 31. mc table generated by ',

1 ' 36m(1)m(2) - 6m(1) + 6m(2) - 1 (is points)'

write (1, *) ' Note: is identical to *27,',

1 ' ((CA2 * 6) - 1) output'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, ' 31. mc table generated by ',

1 ' 36m(1)m(2) - 6m(1) + 6m(2) - 1 (is points)'

print *, ' Note: is identical to *27,',

1 ' ((CA2 * 6) - 1) output'

endif

do i = lowervv, uppervv

if (vv(i,2) .ne. 0) then

if (output .eq. 'F') then

write (1, *) 'mc generated by '

1 ' 36m(1)m(2) - 6m(1) + 6m(2) - 1 '

2 'at ', (6 * i) - 1

else

print *, 'mc generated by '

1 ' 36m(1)m(2) - 6m(1) + 6m(2) - 1 '

2 'at ', (6 * i) - 1

endif

endif

enddo

endif

if (ichoice(42) .eq. 42) go to 95

if (ichoice(43) .eq. 43) go to 95

if (ichoice(44) .eq. 44) go to 95

70 print *, ' Page 3 of choices'

print *, '49 Examine starred choices made from pages 1 and 2 in '

print *, ' this version of program Segment Sieve'

print *, '50 Clear Choices from Pages 1 and 2, Repeat both pages'

print *, '51 Keep Choices from Pages 1 and 2, Repeat both pages'

print *, ' '

print *, '*32 Voids(mp) in mc table generated by '

c 32. ((n * 6) -1 ) Voids(these are mp) in the mc table generated by

cg 36m(1)m(2) - 6m(1) + 6m(2) -1

c is identical to 28 output.

c (is points)

print *, ' 36m(1)m(2) - 6m(1) + 6m(2) - 1',

1 'is identical to 28 output. (is points)'

print *, '*33 The Pivot Point table generated ',

c 33. The Pivot Point table generated by

cg 6m(1)m(2) - m(1) + m(2) = CA2

c (Vanita's Vector Points)

c Note: is identical to the

c Pivot Point table generated by

c 6m(1)m(2) + m(1) - m(2) = CA2

c (is identical to 29 output)

1 'by 6m(1)m(2) - m(1) + m(2)'

print *, ' is identical to 29 output. (Vanitas Vector Points)'

print *, '*34 Voids in the Pivot Point table ',

c 34. Voids in the Pivot Point table generated by

cg 6m(1)m(2) - m(1) + m(2)

c (identical to 30 output)

c (Vanita's Vector Points)

1 'generated by'

print *, ' 6m(1)m(2) - m(1) + m(2)'

print *, ' (Is identical to 30 output.) (Vanitas Vector Points)'

print *, '*35 The plus composite(pc) table generated by'

print *, ' 36m(1)m(2) - 6m(1) - 6m(2) + 1 = (CA3 * 6) + 1',

1 ' (is points)'

print *, '*36 ((n*6)+1) voids (possible pp) in pc table generated' by'

c 36. ((n*6)+1) voids (possible pp) in pc table generated by

cg 36m(1)m(2) - 6m(1) - 6m(2) + 1

c (is points)

print *, ' by 36m(1)m(2) - 6m(1) - 6m(2) + 1 = (CA3 * 6) + 1',

1 ' (is points)'

print *, '*37 Pivot Point table generated by'

c 37. Pivot Point table generated by

cg 6m(1)m(2) - m(1) - m(2) = CA3

c (Vanitas Vector Points)

print *, ' 6m(1)m(2) - m(1) - m(2) = CA3',

1 ' (Vanitas Vector Points)'

print *, '*38 Voids in the Pivot Point table for pc generated ',

1 'by CA3 = '

print *, ' 6m(1)m(2) - m(1) - m(2) = Chenault Algorithym III',

1 ' (Vanitas Vector Points)'

print *, '*39 The Pivot Point table for pc composites generated '

print *, ' by combining the output from'

print *, ' 6m(1)m(2) + m(1) + m(2) = Chenault ',

1 'Algorithym I'

print *, ' and 6m(1)m(2) - m(1) - m(2) = Chenault ',

1 'Algorithym III '

print *, ' (Vanitas Vector Points)'

print *, '*40 Voids(pp Pivot Points) in the Pivot Point table ',

1 'generated by'

print *, ' combining the output from'

print *, ' 6m(1)m(2) + m(1) + m(2) = Chenault ',

1 'Algorithym I'

print *, ' and 6m(1)m(2) - m(1) - m(2) = Chenault ',

1 'Algorithym III '

print *, ' (Vanitas Vector Points)'

print *, ' '

print *, '52 All starred choices on page 3'

print *, '53 Repeat all pages, retaining prevous starred choices'

print *, '54 Erase all user input and Repeat all pages'

print *, '55 Examine starred choices made from pages 1 and 2 in '

print *, ' this version of program Segment Sieve, then repeat ',

1 'page 3'

print *, '56 Review all starred choices made from pages 1, 2, ',

1 ' and 3, Retain all starred choices, then',

2 ' Repeat all pages'

print *, ' '

print *, 'Type line number(s) of outputs desired from this page ',

1 ' , separated by commas.'

print *, ' (use only 1 line) (do not type * or spaces(blanks)'

read (5, '(a)') choices

c if (choices(1:1) .ne. ' ') then

c print *, 'choices = ', choices

c endif

oldpos = 0 ! indicate that no commas have been in string found so far

if (choices(1:1) .eq. ' ') go to 80 ! blank line

do i = 1, 80

if ((choices(i:i) .eq. ',') .or. (choices(i:i) .eq. ' ')) then

c if a comma is found, process here

c if a blank is found, we assume last input

if ((i - oldpos) .eq. 3) then

isubscript = ((ichar(choices((oldpos+1):(i-2)))) -48)*10

isubscript = isubscript +

1 (ichar(choices((oldpos+2):(i-1)))) - 48

ichoice (isubscript) = isubscript

else

ichoice((ichar(choices((oldpos+1):(i-1)))) - 48) ! turn on option

1 = (ichar(choices((oldpos+1):(i-1)))) - 48

endif

oldpos = i ! mark position of this comma

endif

if (choices(i:i) .eq. ' ') go to 80 ! if we have blank, exit parse

enddo

80 oldpos = 0 ! clear for next string test

c 52 test for All starred choices on this page

if (ichoice(52) .eq. 52) then

do i = 32, 40

ichoice(i) = i

enddo

ichoice(52) = 0 ! clear for next test

endif

c 49 Examine starred choices made from pages 1 and 2 in

c this version of program Segment Sieve

if (ichoice(49) .eq. 49) then

do i = 1, 31

if (ichoice(i) .eq. i) print *, 'ichoice(',i,') = ', ichoice(i)

enddo

ichoice(49) = 0 ! reset examine option

print *, 'Press return when ready to continue.'

pause

go to 70 ! top of page 3

endif

c 50 test for Clear Choices from Pages 1 and 2, Repeat both pages

if (ichoice(50) .eq. 50) then

do i = 1, 31

ichoice(i) = 0

enddo

ichoice(50) = 0

go to 30 ! top of page 1

endif

c 51 test for Keep Choices from Pages 1 and 2, Repeat both pages

if (ichoice(51) .eq. 51) then

ichoice(51) = 0

go to 30 ! top of page 1

endif

90 continue

c *32 ((n * 6) -1) voids(these are mp) in mc table generated by

cg 36m(1)m(2) - 6m(1) + 6m(2) -1

c is identical to 28 output.

c (is points)

95 if (ichoice(32) .eq. 32) then

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) '32. ((n*6)-1) voids in mc table generated ',

1 'by 36m(1)m(2) - 6m(1) + 6m(2) - 1 '

write (1, *) ' (is points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, '32. ((n*6)-1) voids in mc table generated ',

1 'by 36m(1)m(2) - 6m(1) + 6m(2) - 1 '

print *, ' (is points)'

endif

do i = lowervv, uppervv

if (vv(i,2) .eq. 0) then

if (output .eq. 'F') then

write (1, *) '(6 * ', i, ') - 1 Minus prime(mp) at ',

1 (6 * i) - 1

else

print *, '(6 * ', i, ') - 1 Minus prime(mp) at ',

1 (6 * i) - 1

endif

endif

enddo

endif

c 33. The Pivot Point table generated by

cg 6m(1)m(2) - m(1) + m(2) = CA2

c (Vanita's Vector Points)

c Note: is identical to the

c Pivot Point table generated by

c 6m(1)m(2) + m(1) - m(2) = CA2

c (is identical to 29 output)

if (ichoice(33) .eq. 33) then

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *)' 33. Pivot Point table for mcs generated by ',

1 '6m(1)m(2) - m(1) + m(2) '

write (1, *) ' (Vanitas Vector Points)'

write (1, *)' Note:is same as the Pivot Point table ',

1 'generated by'

write (1, *)' 6m(1)m(2) + m(1) - m(2) = CA2'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, ' 33. Pivot Point table for mcs generated by ',

1 '6m(1)m(2) - m(1) + m(2) '

print *, 'Note: is same as the Pivot Point table ',

1 'generated by'

print *, ' 6m(1)m(2) + m(1) - m(2) = CA2'

print *, ' (Vanitas Vector Points)'

endif

do i = lowervv, uppervv

if (vv(i,2) .ne. 0) then

if (output .eq. 'F') then

write (1, *) 'Pivot Point for mc at ', i

else

print *, 'Pivot Point for mc at ', i

endif

endif

enddo

endif

if (ichoice(34) .eq. 34) then

c 34. Voids in the Pivot Point table generated by

cg 6m(1)m(2) - m(1) + m(2)

c (identical to 30 output)

c (Vanita's Vector Points)

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *)'34. Voids in the Pivot Point table generated',

1 ' by 6m(1)m(2) - m(1) + m(2)'

write (1, *) ' (Is identical to 30 output.)',

1 ' (Vanitas Vector Points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, '34. Voids in the Pivot Point table generated',

1 ' by 6m(1)m(2) - m(1) + m(2)'

print *, ' (Is identical to 30 output.)',

1 ' (Vanitas Vector Points)'

endif

do i = lowervv, uppervv

if (vv(i,2) .eq. 0) then

if (output .eq. 'F') then

write (1, *) 'Pivot Point of Minus prime at ', i

else

print *, 'Pivot Point of Minus prime at ', i

endif

endif

enddo

print *, ' '

endif

if (ichoice(35) .eq. 35) then

c 35. pc table generated by

cg 36m(1)m(2) - 6m(1) - 6m(2) + 1 = (CA3 * 6) + 1

c (is points)

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) '35. Plus composite (pc) table generated by ',

1 '36m(1)m(2) - 6m(1) - 6m(2) + 1 '

write (1, *) ' = (CA3 * 6) - 1 (is points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, '35. Plus composite (pc) table generated by ',

1 '36m(1)m(2) - 6m(1) - 6m(2) + 1 '

print *, ' = (CA3 * 6) - 1 (is points)'

endif

do i = lowervv, uppervv

if (vv(i,3) .ne. 0) then

if (output .eq. 'F') then

write (1, *) ' (6 * ', i, ') + 1 pc at ',

1 (6 * i) + 1

else

print *, ' (6 * ', i, ') + 1 pc at ',

1 (6 * i) + 1

endif

endif

enddo

print *, ' '

endif

c *36 ((n*6)+1) voids (possible pp) in pc table generated by

cg 36m(1)m(2) - 6m(1) - 6m(2) + 1

c (is points)

if (ichoice(36) .eq. 36) then

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) '36. ((n*6)+1) voids in pc table generated ',

1 'by 36m(1)m(2) - 6m(1) - 6m(2) + 1 '

write (1, *) ' = voids in ((CA3 * 6) + 1) (is points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, '36.((n*6)+1) voids in pc table generated ',

1 'by 36m(1)m(2) - 6m(1) - 6m(2) + 1 '

print *, ' = voids in ((CA3 * 6) + 1) (is points)'

endif

do i = lowervv, uppervv

if (vv(i,3) .eq. 0) then

if (output .eq. 'F') then

write (1, *) 'possible Plus prime at ',

1 (6 * i) + 1

else

print *, 'possible Plus prime at ',

1 (6 * i) + 1

endif

endif

enddo

endif

c *37 Pivot Point table generated by

cg 6m(1)m(2) - m(1) - m(2) = CA3

c (Vanitas Vector Points)

if (ichoice(37) .eq. 37) then

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *)'37. Pivot Point table generated by '

write (1, *) ' 6m(1)m(2) - m(1) - m(2) = CA3'

1 ' (Vanitas Vector Points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, '37. Pivot Point table generated by '

print *, ' 6m(1)m(2) - m(1) - m(2) = CA3'

1 ' (Vanitas Vector Points)'

endif

do i = lowervv, uppervv

if (vv(i,3) .ne. 0) then

if (output .eq. 'F') then

write (1, *) 'Pivot Point at ', i,

1 ' generated by CA3'

else

print *, 'Pivot Point at ', i,

1 ' generated by CA3'

endif

endif

enddo

endif

c *38 Voids in the Pivot Point table generated by

cg 6m(1)m(2) - m(1) - m(2) = CA3

c (Vanitas Vector Points)

if (ichoice(38) .eq. 38) then

if (output .eq. 'F') then

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *)'38. Voids in Pivot Point table ',

1 'generated by '

write (1, *) ' 6m(1)m(2) - m(1) - m(2) = CA3',

1 ' (Vanitas Vector Points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, '38. Voids in Pivot Point table ',

1 'generated by '

print *, ' 6m(1)m(2) - m(1) - m(2) = CA3',

1 ' (Vanitas Vector Points)'

endif

do i = lowervv, uppervv

if (vv(i,3) .eq. 0) then

if (output .eq. 'F') then

write (1, *) 'Void in Pivot Point table at ',

1 i, ' generated by CA3'

else

print *, 'Void in Pivot Point table at ',

1 i, ' generated by CA3'

endif

endif

enddo

endif

c *39 Pivot Point table generated by combining the

cg output from 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: ((member of either (or both) CA1 or CA3) * 6) + 1 = pc

c (Vanitas Vector Points)

if (ichoice(39) .eq. 39) then

if (output .eq. 'F') then

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *)'39. Pivot Point table for pcs generated by ',

1 'combining output from'

write (1, *) ' 6m(1)m(2) + m(1) + m(2) = CA1 and'

write (1, *) ' 6m(1)m(2) - m(1) - m(2) = CA3',

1 ' (Vanitas Vector Points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, '39. Pivot Point table for pcs generated by ',

1 'combining output from'

print *, ' 6m(1)m(2) + m(1) + m(2) = CA1 and'

print *, ' 6m(1)m(2) - m(1) - m(2) = CA3',

1 ' (Vanitas Vector Points)'

endif

do i = lowervv, uppervv

if ((vv(i,1) .ne. 0) .or. (vv(i,3) .ne. 0)) then

if (output .eq. 'F') then

write (1, *) 'Pivot Point for pc at ', i,

1 ' generated by CA1 and,or CA3'

else

print *, 'Pivot Point for pc at ', i,

1 ' generated by CA1 and,or CA3'

endif

endif

enddo

endif

c *40 voids in Pivot Points table generated by combining

cg output from 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: ((commom void for CA1 and CA3) * 6) + 1 = pp

c (Vanitas Vector Points)

if (ichoice(40) .eq. 40) then

if (output .eq. 'F') then

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *)'40. Pivot Points for Plus primes (pp). '

write (1, *)'(generated by voids in the table ',

1 'obtained from combining output of'

write (1, *) ' 6m(1)m(2) + m(1) + m(2) = CA1 and'

write (1, *) ' 6m(1)m(2) - m(1) - m(2) = CA3'

1 ' (Vanitas Vector Points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, '40. Pivot Points for Plus primes (pp). '

print *, '(generated by voids in the table ',

1 'obtained from combining output of'

print *, ' 6m(1)m(2) + m(1) + m(2) = CA1 and'

print *, ' 6m(1)m(2) - m(1) - m(2) = CA3'

1 ' (Vanitas Vector Points)'

endif

do i = lowervv, uppervv

if ((vv(i,1) .eq. 0) .and. (vv(i,3) .eq. 0)) then

if (output .eq. 'F') then

write (1, *) 'pivot point for pp at ', i,

1 ' generated by CA1 and CA3'

else

print *, 'pivot point for pp at ', i,

1 ' generated by CA1 and CA3'

endif

endif

enddo

endif

if (ichoice(42) .eq. 42) go to 100

if (ichoice(43) .eq. 43) go to 100

if (ichoice(44) .eq. 44) go to 100

c 53 test for Repeat all pages, retaing preveous starred choices.

if (ichoice(53) .eq. 53) then

ichoice(53) = 0 ! clear option

go to 30 ! top of page 1

endif

c 54 test for Erase all user input and Repeat everything

if (ichoice(54) .eq. 54) then

do i = 1, 56

ichoice(i) = 0

enddo

go to 5 ! start of questions

endif

c 55 test for Examine starred choices made from pages 1 and 2 in

c this version of program Segment Sieve, then repeat page 3

if (ichoice(55) .eq. 55) then

do i = 1, 31

if (ichoice(i) .eq. i) print *, 'ichoice(',i,') = ', ichoice(i)

enddo

ichoice(55) = 0 ! reset examine option

print *, 'Press return when ready to continue.'

pause

go to 70 ! top of page 3

endif

c 56 test for Examine all starred choices made from pages 1, 2,

c and 3, retain starred choices, then Repeat all pages

if (ichoice(56) .eq. 56) then

do i = 1, 40

if (ichoice(i) .eq. i) print *, 'ichoice(',i,') = ', ichoice(i)

enddo

ichoice(56) = 0 ! reset examine option

print *, 'Press return when ready to continue.'

pause

go to 30 ! top of page 1

endif

If (output .eq. 'F') print *, 'The file name you chose for ',

1 'storage of results was ',

2 filename

100 close (1)

stop

10000 print *, 'error opening ', filename, ' It may be open.'

stop

c Jeff's Jargon: (a repeat of this glossary is at the beginning of code)

c

c Chenault is pronounced Shin-alt

c

c is = integer scale. The variable n is used for is calcultions.

c n = integer, no limit

c

c A: A prime number is a positive integer number, greater than

c 1; such that 1 and itself are the only integers which

c divide the prime number yielding a positive integer with a

c zero remainder.

c B: The Chenault series consists of: 2, 3, all (6n-1) and all (6n+1).

c C: cn = Chenault number = an element of the Chenault series.

c D: mp = (6n-1) primes = "minus primes".

c E: pp = (6n+1) primes = "plus primes".

c F: mc = (6n-1) composite numbers = "minus composites".

c G: pc = (6n+1) composite numbers = "plus composites".

c H: mcn = (minus Chenault number) = any mp or mc.

c I: pcn = (plus Chenault number) = any pp or pc.

c J: unsorted cn's = 2 and 3.

c K: sorted cn's = all (6n-1) and all (6n+1).

c

c

c Jeff's Jargon: (Section II)

c

c A: tpc: Twin Prime Candidate = 6n-1, 6n+1 pair for a given n.

c B: potential twin prime partner: ptpp

c Letting a n6-1 prime be the reference, its potential

c twin prime partner is the n6+1 for that n.

c Letting a n6+1 prime be the reference, its potential

c twin prime partner is the n6-1 for that n.

c C: lonesome prime: a prime (either mp or pp) whose ptpp is a composite.

c D: lonesome plus prime: pp whose ptpp is mc.

c E: lonesome minus prime: mp whose ptpp is pc.

c F: lonesome plus composite: (6n+1) is composite, while

c (6n-1) is prime.

c G: lonesome minus composite: (6n+1) is prime, while

c (6n-1) is composite.

c H: married plus prime: pp of a twin prime pair.

c I: married minus prime: mp of a twin prime pair.

c J: the composite table: all composite (6n-1) and

c all composite (6n+1)

c K: the plus composite table all composite (6n+1)

c L: the minus composite table all composite (6n-1)

c A: integer scale: is

c B: Vanita’s Vector= an integer scale that is a replica of the is. Each integer on Vanita’s Vector corresponds to a multiple of 6 on the is.

c C: vv point = point on Vanita’s Vector. Note 3: Throughout this composition, the variable mvv = vv point = a positive integer, 1, thru infinity.

c D: tppptn = vv point = Twin Prime Pivot Point

c = n for an (6n-1),(6n+1) pair of primes.

c E: ptpppt = vv point = potential twin prime pivot point

c = n for an (6n-1),(6n+1) pair on is.

c F: ctpppt = vv point = compromised Pivot Point

c = either 6n -1 and, or 6n + 1 is composite.

c A: CAI = Chenault Algorithm I.

c B: CAII = Chenault Algorithm II.

c C: CAIII = Chenault Algorithm III.

c D: Chenault Segment Sieve = eliminates all ptppp on Vanita’a Vector that satisfy either CAI, CAII, or CAIII.

c E. Segment Sieve = Chenault Segment Sieve

c = an exercise of the Chenault Solution

c vv = Vanita's Vector = a replica of the is. Each integer of Vanita's

c Vector corresponds to a multiple of 6 on the is.

c The varible m is used for vv calculations.

c m = integer, no limit

c

c All composites are indicated by the Chenault Solution. (vv points)

c

c Chenault Solution = (6*m(1)*m(2) +- m(1) +- m(2)) (vv points)

c

c The sign combinations used by the Chenault Algorithms determine whether

c (6*n)-1 or (6*n)+1 is composite, i. e., whether we have a plus composite

c or a minus composite.

c

c --------------------------------------------------------------------

c --------------------------------------------------------------------

c

c is section:

c

c is = integer scale. The variable n is used for is calcultions.

c n = integer, no limit

c

c Chenault Series = 2, 3, (n6 - 1), (n6 + 1) (is points)

c Thelma's Thoughts: Prime Numbers are a subset of the Chenault Series.

c For proof, see "Prime Thoughts" by Tom Chenault.

c

c Chenault Number = member of Chenault Series

c

c twin pair = (6n-1), (6n+1) for the same n

c

c

c ptpp = potential twin prime partner =

c The potential twin prime partner of a

c n6-1 prime is the n6+1 for that n.

c The potential twin prime partner of a

c n6+1 prime is the n6-1 for that n.

c

c pp = plus prime = prime at (6n+1).

c

c mp = minus prime = prime at (6n-1).

c

c twin prime pair = (6n+1), (6n-1) = pp, mp for the same n.

c

c

c pc = plus composite = a composite at (6n+1).

c

c mc = minus composite = a composite at (6n-1).

c d

c twin composite pair = (6n+1), (6n-1) = pc, mc for the same n

c

c lonesome prime = prime (either mp or pp) whose potential twin prime

c partner is a composite.

c

c lonesome plus prime = pp whose potential twin prime partner is a mc.

c

c lonesome minus prime = mp whose potential twin prime partner is a pc.

c

c married plus prime = the pp from a twin prime pair (besides 3, 5)

c

c married minus prime = the mp from a twin prime pair (besides 3, 5)

c

c --------------------------------------------------------------------

c --------------------------------------------------------------------

c

c vv section:

c

c Vanita's Vector (vv) = a replica of the is. Each integer of Vanita's

c Vector corresponds to ((the vv integer) * 6)

c on the is.

c The varible m is used for vv calculations.

c m = integer, no limit

c

c pttppvpt = vv = potential twin prime pivot point.

c

c tppvpt = vv = twin prime pivot point = an integer multiple of 6 such

c that ((6*tppp)-1, ((6*tppp)+1) are the is elements of a twin prime).

c

c pppvpt = vv = plus prime pivot point.

c

c mppvpt = vv = minus prime pivot point.

c

c lonesome pvpt = vv = pivot point for pp,mc or pc,mp.

c

c lonesome pppvpt = vv which serves as a pivot point for pp, mc.

c

c lonesome mppvpt = vv which serves as a pivot point for pc, mp.

c

end

c F90 compiler.

c This test bed program was written in Fortran an runs out of DOS (the command

c prompt).

c It takes 1 second for 999900 to 1000000, and not much more for the higher ranges I c timed.

c programming stategy:

c 1. setup an (n by 3) matrix: cells are filled with 1's or left empty

c 2. use the algorithms to fill cells with 1's or leave empty

c 3. look for voids in the appropriate area

c 4. generate 40 reports to a file

c The executable can be downloaded

c The main advantages I see with these algorithms are:

c 1. We can do away with keeping up with the prime numbers (except for reports).

c 2. These allow an incremental database, so we don't have start over as we do c now.

program segmentsieve ! by Tom Chenault

c

c copyright 2010

c

c "Prime Thoughts" by Tom Chenault shows that all primes must belong to the

c Chenault Series which consists of 2, 3, ((n*6)+1), and ((n*6) -1),

c letting n = 1, infinity.

c

c The Chenault Segment Sieve calculates prime numbers within a user defined

c span without knowledge of previous primes.

c

c The Chenault Segment Sieve is an application of the Chenault Solution which

c is derived in "Prime Thoughts" by Tom Chenault.

c

c Vanita's Vector is a replica of the integer system, with each number on

c Vanita's Vector (vv) corresponding to (6*(vv number)) on the integer system.

c

c The varible m is used for vv calculations.

c m = integer, no limit

c

c Chenault Solution = (6*m(1)*m(2) +- m(1) +- m(2)) (vv)

c

c All composites are indicated by the Chenault Solution. (vv)

c

c CA1 = Chenault Algorithm I = 6m(1)*m(2) + m(1) + m(2) (vv)

c

c CA2 = Chenault Algorithm II = 6m(1)*m(2) + m(1) - m(2) (vv)

c

c CA3 = Chenault Algorithm III = 6m(1)*m(2) - m(1) 1 m(2) (vv)

c

c The Chenault Segment Sieve uses the 3 Chenault Algorithms to

c isolate all primes.

c

c The Chenault Plus Solution ((Chenault Algorithms I and III)).

c The Chenault Plus Solution isolates all plus ((n * 6) + 1) primes.

c

c The Chenault Minus Solution (2 of the 4 Chenault Solution's 4 algorithms)

c The Chenault Minus Solution isolates all minus ((n * 6) - 1) primes.

c The two algorithms of the Chenault Minus Solution yield the same results,

c so only one algorithm is used (Chenault Algortithm II).

c

c Knowing which of the Chenault Solution algorithms generated a vv point

c allows determination of minus composites and plus composites.

c

c All primes are determined by Chenault Algorithms I, II, and III.

c

c Common Voids in the numbers generated by Chenault Algorithms I and III

c identify all n's of plus primes, i. e. ((n*6) + 1) primes.

c

c Voids in the numbers generated by Chenault algorithm II identify all

c n's of minus primes, i. e. ((n*6) - 1) primes.

c

c Common voids in Chenault Algorithms I, II, and II identify

c all n's of twin primes, i. e., ((n*6) - 1, ((n*6) + 1

c

c

c Jeff's Jargon: (a repeat of this glossary is at the end of code)

c

c Chenault is pronounced Shin-alt

c

c is = integer scale. The variable n is used for is calcultions.

c n = integer, no limit

c

c A: A prime number is a positive integer number, greater than

c 1; such that 1 and itself are the only integers which

c divide the prime number yielding a positive integer with a

c zero remainder.

c B: The Chenault series consists of: 2, 3, all (6n-1) and all (6n+1).

c C: cn = Chenault number = an element of the Chenault series.

c D: mp = (6n-1) primes = "minus primes".

c E: pp = (6n+1) primes = "plus primes".

c F: mc = (6n-1) composite numbers = "minus composites".

c G: pc = (6n+1) composite numbers = "plus composites".

c H: mcn = (minus Chenault number) = any mp or mc.

c I: pcn = (plus Chenault number) = any pp or pc.

c J: unsorted cn's = 2 and 3.

c K: sorted cn's = all (6n-1) and all (6n+1).

c

c

c Jeff's Jargon: (Section II)

c

c A: tpc: Twin Prime Candidate = 6n-1, 6n+1 pair for a given n.

c B: potential twin prime partner: ptpp

c Letting a n6-1 prime be the reference, its potential

c twin prime partner is the n6+1 for that n.

c Letting a n6+1 prime be the reference, its potential

c twin prime partner is the n6-1 for that n.

c C: lonesome prime: a prime (either mp or pp) whose ptpp is a composite.

c D: lonesome plus prime: pp whose ptpp is mc.

c E: lonesome minus prime: mp whose ptpp is pc.

c F: lonesome plus composite: (6n+1) is composite, while

c (6n-1) is prime.

c G: lonesome minus composite: (6n+1) is prime, while

c (6n-1) is composite.

c H: married plus prime: pp of a twin prime pair.

c I: married minus prime: mp of a twin prime pair.

c J: the composite table: all composite (6n-1) and

c all composite (6n+1)

c K: the plus composite table all composite (6n+1)

c L: the minus composite table all composite (6n-1)

c A: integer scale: is

c B: Vanita’s Vector= an integer scale that is a replica of the is. Each integer on Vanita’s Vector corresponds to a multiple of 6 on the is.

c C: vv point = point on Vanita’s Vector. Note 3: Throughout this composition, the variable mvv = vv point = a positive integer, 1, thru infinity.

c D: tppptn = vv point = Twin Prime Pivot Point

c = n for an (6n-1),(6n+1) pair of primes.

c E: ptpppt = vv point = potential twin prime pivot point

c = n for an (6n-1),(6n+1) pair on is.

c F: ctpppt = vv point = compromised Pivot Point

c = either 6n -1 and, or 6n + 1 is composite.

c A: CAI = Chenault Algorithm I.

c B: CAII = Chenault Algorithm II.

c C: CAIII = Chenault Algorithm III.

c D: Chenault Segment Sieve = eliminates all ptppp on Vanita’a Vector that satisfy either CAI, CAII, or CAIII.

c E. Segment Sieve = Chenault Segment Sieve

c = an exercise of the Chenault Solution

c vv = Vanita's Vector = a replica of the is. Each integer of Vanita's

c Vector corresponds to a multiple of 6 on the is.

c The varible m is used for vv calculations.

c m = integer, no limit

c

c All composites are indicated by the Chenault Solution. (vv points)

c

c Chenault Solution = (6*m(1)*m(2) +- m(1) +- m(2)) (vv points)

c

c The sign combinations used by the Chenault Algorithms determine whether

c (6*n)-1 or (6*n)+1 is composite, i. e., whether we have a plus composite

c or a minus composite.

c

c --------------------------------------------------------------------

c --------------------------------------------------------------------

c

c is section:

c

c is = integer scale. The variable n is used for is calcultions.

c n = integer, no limit

c

c Chenault Series = 2, 3, (n6 - 1), (n6 + 1) (is points)

c Thelma's Thoughts: Prime Numbers are a subset of the Chenault Series.

c For proof, see "Prime Thoughts" by Tom Chenault.

c

c Chenault Number = member of Chenault Series

c

c twin pair = (6n-1), (6n+1) for the same n

c

c

c ptpp = potential twin prime partner =

c The potential twin prime partner of a

c n6-1 prime is the n6+1 for that n.

c The potential twin prime partner of a

c n6+1 prime is the n6-1 for that n.

c

c pp = plus prime = prime at (6n+1).

c

c mp = minus prime = prime at (6n-1).

c

c twin prime pair = (6n+1), (6n-1) = pp, mp for the same n.

c

c

c pc = plus composite = a composite at (6n+1).

c

c mc = minus composite = a composite at (6n-1).

c d

c twin composite pair = (6n+1), (6n-1) = pc, mc for the same n

c

c lonesome prime = prime (either mp or pp) whose potential twin prime

c partner is a composite.

c

c lonesome plus prime = pp whose potential twin prime partner is a mc.

c

c lonesome minus prime = mp whose potential twin prime partner is a pc.

c

c married plus prime = the pp from a twin prime pair (besides 3, 5)

c

c married minus prime = the mp from a twin prime pair (besides 3, 5)

c

c --------------------------------------------------------------------

c --------------------------------------------------------------------

c

c vv section:

c

c Vanita's Vector (vv) = a replica of the is. Each integer of Vanita's

c Vector corresponds to ((the vv integer) * 6)

c on the is.

c The varible m is used for vv calculations.

c m = integer, no limit

c

c pttppvpt = vv = potential twin prime pivot point.

c

c tppvpt = vv = twin prime pivot point = an integer multiple of 6 such

c that ((6*tppp)-1, ((6*tppp)+1) are the is elements of a twin prime).

c

c pppvpt = vv = plus prime pivot point.

c

c mppvpt = vv = minus prime pivot point.

c

c lonesome pvpt = vv = pivot point for pp,mc or pc,mp.

c

c lonesome pppvpt = vv which serves as a pivot point for pp, mc.

c

c lonesome mppvpt = vv which serves as a pivot point for pc, mp.

c

c ----------------------------------------------------------------------------

c ----------------------------------------------------------------------------

c ----------------------------------------------------------------------------

c

c This program can output any permutation of the 40 starred choices

c in any span supported by the hardware/software.

c

cg 1. The Twin prime table. (is points)

c Note: detected by common voids in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) + m(1) - m(2) = CA2 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: ((common void) * 6) + 1 = pp and

c ((common void) * 6) - 1 = mp

c (is points)

c

cg 2. The Twin prime Pivot Point table.

c Note: The Married Plus and Married Minus

c Pivot Point tables are identical to

c (The Twin prime Pivot Point table).

c Note: detected by common voids in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) + m(1) - m(2) = CA2 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c (Vanitas Vector Points)

c

cg 3. The Married Plus prime table.

c pp that are part of a twin prime pair

c Note: Twin primes are detected by common voids in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) + m(1) - m(2) = CA2 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: ((common void) * 6) + 1 is a married plus prime. (is points)

c

c 4. The Married Minus prime table.

cg mp that are part of a twin prime pair

c Note: Twin primes are detected by common voids in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) + m(1) - m(2) = CA2 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: ((common void) * 6) - 1 is a married minus prime. (is points)

c

c 5. The prime table

cg (includes the primes in (pp, mc) and (pc, mp) and (pp, mp))

c Note: The pp are detected by common voids

c in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((common void of CA1 and CA2) * 6) + 1) is a pp.

c Note: The mp are detected by voids in the output from

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((void of CA2) * 6) - 1) is a mp.

c (is points)

c

c 6. The Pivot Point table of primes.

cg (includes the Pivot Points for pairs: (pp, mc) and (pc, mp) and (pp, mp))

c Note: The Pivot Points for pp are detected by common voids

c in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: The Pivot Points for mp are detected by voids in output of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

c

c 7. The Plus prime table.

cg Note: detected by common voids in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((common void of CA1 and CA3) * 6) + 1 = pp

c (is points)

c

c 8. The Plus prime Pivot Point table. (Vanita's Vector Points)

cg Note: detected by common voids in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c (Vanitas Vector Points)

c

c 9. The Minus prime table.

cg Note: detected by voids in

c 6m(1)m(2) + m(1) - m(2) = CA2

c (void in CA2) * 6) - 1 = mp

c (is points)

c

c 10. The Minus prime Pivot Point table. (Vanita's Vector Points)

cg Note: detected by voids in

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

c

c 11. The Lonesome prime table.

cg (the primes in (pp, mc) and (pc, mp) pairs)

c (pp,mc) detected by Pivot Point being a common void in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c and Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c NOTE:((common void of CA1 and CA3) * 6) + 1 = pp

c ((member of CA2) * 6) - 1 = mc

c and

c (pc,mp) detected by Pivot Point being a member of either or both

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((member of either (or both) CA1 or CA3) * 6) + 1 = pc

c and Pivot Point being a void of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((void of CA2) * 6) - 1 = mp

c (is points)

c

c 12. The Lonesome prime Pivot Point table.

cg Pivot Points for (pp, mc) or (pc, mp) pairs

c detected by common voids in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c and Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c and

c detected by Pivot Point being a member of either (or both)

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c and being a void of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

c

c 13. The Lonesome Plus prime table.

cg identifies primes from (pp,mc) pairs

c (pp,mc) detected by Pivot Point being a common void in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c and Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((common void of CA1 and CA3) * 6) + 1 = pp

c ((member of CA2) * 6) - 1 = mc

c (is points)

c

c 14. The Lonesome Plus Pivot Point table.

cg detected by Pivot Point being a common void in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c and Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

c

c 15. The Lonesome Minus prime table.

cg identifies primes from (pc,mp) pairs

c detected by Pivot Point being a member of either (or both)

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((member of either (or both) CA1 or CA3) * 6) + 1 = pc

c and Pivot Point being a void of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((void of CA2) * 6) - 1 = mp

c (is points)

c

c 16. The Lonesome Minus Pivot Point table.

cg detected by Pivot Point being a member of either (or both)

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c and being a void of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

c

c 17. Composite table (all pc and all mc).

cg pc detected by Pivot Point being a member of either (or both)

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((member of either (or both) CA1 or CA3) * 6) + 1 = pc

c mc detected by Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((member of CA2) * 6) - 1 = mc

c (is points)

c

c 18. Pivot Point table for all composites (pc's and mc's).

cg Pivot Point for pc detected by being a member of either (or both)

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c Pivot Point for mc detected by being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

c

c 19. pc table

cg pc detected by Pivot Point being a member of either

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3 (or both)

c ((member of either (or both) CA1 or CA3) * 6) + 1 = pc

c (is points)

c

c 20. Pivot Point table for pcs.

cg pc detected by Pivot Point being a member of either

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3 (or both)

c (Vanitas Vector Points)

c

c 21. mc table

cg mc detected by Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((member of CA2) * 6) - 1 = mc

c (is points)

c

c 22. Pivot Point table for mc.

cg mc detected by Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

c

c 23. The pc table generated by CA1 = 36m(1)m(2) + 6m(1) + 6m(2) + 1

cg those pc detected by Pivot Point being a member of

c 6m(1)m(2) + m(1) + m(2) = CA1

c ((member of CA1) * 6) + 1 = pc

c (is points)

c

c 24. ((n * 6) + 1) Voids in pc table generated by (CA1 * 6) + 1

cg (is points)

c

c 25. The Pivot Point table generated by CA1

cg (Vanitas Vector Points)

c

c 26. Voids in the Pivot Point table generated by CA1

cg = 6m(1)m(2) + m(1) + m(2)

c (Vanitas Vector Points)

c

cg 27. The mc table is detected by a Pivot Point being generated by

c CA2.

c ((member of CA2) * 6) - 1 = mc

c (is points)

c

c

c 28. ((n * 6) -1) = mp voids in mc table generated by

cg 36m(1)m(2) +6m(1) -6m(2) -1 = (CA2 * 6) - 1

c ((void of CA2) * 6) - 1 = mp

c (is points)

c 29. The Pivot Point table for mc's can be generated by

cg CA2 = 6m(1)m(2) + m(1) - m(2)

c (6 * (member of CA2)) - 1 = mc

c (Vanitas Vector Points)

c Note: is identical to the

c Pivot Point table generated by

c 6m(1)m(2) - m(1) + m(2)

c

c 30. Voids in the Pivot Point table generated by CA2 =

cg 6m(1)m(2) + m(1) - m(2)

c note: these voids are Pivot Points for mp

c (Vanitas Vector Points)

c

c 31. The mc table generated by 36m(1)m(2) - 6m(1) + 6m(2) - 1

cg is identical to 27 output since m(1) and m(2) are interchangeable.

c (is points)

c

c 32. ((n * 6) -1) Voids (these are mp) in the mc table generated by

cg 36m(1)m(2) - 6m(1) + 6m(2) - 1

c (same results as 28)

c (is points)

c

c 33. The Pivot Point table generated by

cg 6m(1)m(2) - m(1) + m(2)

c (Vanita's Vector Points)

c Note: is identical to the

c Pivot Point table generated by

c 6m(1)m(2) + m(1) - m(2) = CA2

c (is identical to 29)

c

c 34. Voids in the Pivot Point table generated by

cg 6m(1)m(2) - m(1) + m(2)

c (identical to 30 output)

c (Vanita's Vector Points)

c

c 35. pc table generated by

cg 36m(1)m(2) - 6m(1) - 6m(2) + 1 = (CA3 * 6) + 1

c (is points)

c

c 36. ((n*6)+1) voids (possible pp) in pc table generated by

cg 36m(1)m(2) - 6m(1) - 6m(2) + 1

c (is points)

c

c 37. The Pivot Point table generated by

cg 6m(1)m(2) - m(1) - m(2). (CA3)

c (Vanita's Vector Points)

c

c 38. Voids in the Pivot Point table generated by

cg 6m(1)m(2) - m(1) - m(2) = CA3

c (Vanitas Vector Points)

c

c 39. Pivot Point table generated by combining the output from

cg 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: ((member of either (or both) CA1 or CA3) * 6) + 1 = pc

c (Vanitas Vector Points)

c 40. voids in Pivot Points table generated by combining

cg output from 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: ((commom void for CA1 and CA3) * 6) + 1 = pp

c (Vanitas Vector Points)

c

c

c

c --------------------------------------------------------------------

c --------------------------------------------------------------------

c

c The Chenault Sieve is an exercise of the Chenault Solution.

c

c The Chenault Solution identifies all mc and all pc.

c

c The Chenault Solution = 6*m(1)*m(2) +- m(1) +- m(2)

c

c The Chenault Solution is a vv calculation.

c

c The Chenault Solution is an expression derived from four is equations.

c

c 1. (6n(1) + 1) (6n(2) + 1) = 36n(1)n(2) + 6n(1) + 6n(2) + 1 = pc

c 2. (6n(1) + 1) (6n(2) - 1) = 36n(1)n(2) - 6n(1) + 6n(2) - 1 = mc

c 3. (6n(1) - 1) (6n(2) + 1) = 36n(1)n(2) + 6n(1) - 6n(2) - 1 = mc

c 4. (6n(1) - 1) (6n(2) - 1) = 36n(1)n(2) - 6n(1) - 6n(2) + 1 = pc

c

c Since equations 2. and 3. yield the same results, we can focus our

c considerations on only three algorithyms.

c

c Expressing 1, 2, and 4 as vv, we get

c

c Chenault Algorithyms

c

c CA1 = 6m(1)m(2) + m(1) + m(2)

c = m(1)(6m(2) + 1) + m(2) note: this derived from a pc

c CA2 = 6m(1)m(2) + m(1) - m(2)

c = m(1)(6m(2) + 1) - m(2) note: this derived from a mc

c CA3 = 6m(1)m(2) - m(1) - m(2)

c = m(1)(6m(2) - 1) - m(2) note: this derived from a pc

c

c

c The segment sieve program as written is limited to a max of 6 digit input,

c but the logic is applicable to any magnitude.

c note: Finding new primes is greatly simplified.

c

c

c Some thoughts for further exploration:

c

c Create files of all points elimiated on Vanita's Vector by the Chenault

c Sieve. Group together and as separate categories by:

c Chenault Algorithm

c ptppp = potential twin prime pivot points

c pc = plus composites

c mc = minus composites

c tppvpt = vv = twin prime pivot point = an integer multiple of 6 such

c that ((6*tppp)-1, ((6*tppp)+1) are the is elements of a twin prime).

c pppvpt = vv = plus prime pivot point.

c pppvpt = vv = plus prime prime pivot point = an integer multiple of 6

c such that ((6*pppvpt)-1, ((6*pppvpt)+1) are mc, pp.

c mppvpt = vv = minus prime pivot point.

c mppvpt = vv = plus prime prime pivot point = an integer multiple of 6

c such that ((6mppvpt)-1, ((6*mppvpt)+1) are mc, pp.

c

c

c 8. Sort eliminated potential primes.

c

c 10. Create file of sorted eliminated ptppp.

c (potential twin prime pivot points on Vanita's Vector).

c This data warrants further study.

c

c

c 11. Build file of Vanita Vector's tppp (twin prime pivot points)

c This data warrants further study.

c

c 13. Create file of sorted eliminated pppp(plus prime pivot points) on

c Vanita's Vector .

c This data warrants further study.

c

c

c 14. Build file of all Vanita Vector's pppp (plus prime pivot points)

c (including those that are also tppp (twin prime pivot points).

c This data warrants further study.

c

c

c 15. Translate the file of all of Vanita's Vector pppp from the vv scale

c to integer scale plus prime points.

c This data warrants further study.

c

c

c 16. Build file of Vanita Vector's lonesome pppp (plus prime pivot points).

c (includes only pppp that are not also tppp (twin prime pivot points).

c This data warrants further study.

c

c

c 17. Translate the file of Vanita's Vector lonesome pppp from the vv scale

c to number scale plus prime points.

c This data warrants further study.

c

c

c

c

c 18. Create file of sorted eliminated mppp(minus prime pivot points) on

c Vanita's Vector .

c This data warrants further study.

c

c

c 19. Build file of all Vanita Vector's mppp (minus prime pivot points)

c (including those that are also tppp (twin prime pivot points).

c This data warrants further study.

c

c

c 20. Translate the file of all of Vanita's Vector mppp from the vv scale

c to number scale minus prime points.

c This data warrants further study.

c

c

c 21. Build file of Vanita Vector's lonesome mppp (minus prime pivot points).

c (includes only mppp that are not also tppp (twin prime pivot points).

c This data warrants further study.

c

c

c 22. Translate the file of Vanita's Vector lonesome mppp from the vv scale

c to number scale minus prime points.

c This data warrants further study.

c

c

c

c note: If your computer is set to print from DOS or the Command Prompt,

c the following will work for you as is, else use notepad

c in the batch file.

c

c

c 23. print all files this program created?

c

c

c

c 24. print eliminatedptppp.tmp (Vanita's Vector points)

c (eliminated potential twin prime pivot points)?

c

c

c

c 25. print eliminatednumbers.tmp (number scale conversions of the

c eliminated potential twin prime pivot points and the

c associated plus or minus signs)?

c

c

c

c 26. print sortedeliminatednumbers.tmp (number scale conversions of the

c eliminated potential twin prime pivot points and the

c associated plus or minus signs) in numerical order?

c

c

c 27. print allprimes.tmp (the prime table portion you requested)?

c

c

c

c 28. print sortedeliminatedptppp.tmp (eliminatedptppp.tmp (Vanita's Vector

c points, eliminated potential twin prime pivot points)

c in numerical order?

c

c

c 29. print alltppp.tmp (Vanita's Vector twin prime pivot points)?

c

c

c

c 30. print alltwinprimes.tmp (the twin primes from the portion of the

c prime table you requested>?

c

c

c

c 31. print sortedeliminatedpppp.tmp (eliminatedptppp.tmp (Vanita's Vector

c points, eliminated potential plus prime pivot points)

c in numerical order?

c

c

c

c 32. print allpppp.tmp (all Vanita's Vector plus prime pivot points,

c includes those that are also tppp)?

c

c

c

c 33. print allppnumbers.tmp (the plus primes from the portion of the

c prime table you requested>?

c

c

c

c 34. print lonesomepppp.tmp (Vanita's Vector plus prime pivot points,

c excluding those that are also tppp)?

c

c

c

c 35. print lonesomeppnumbers.tmp (the plus primes from the portion of the

c prime table you requested whose potential twin prime partners

c are composites>?

c

c

c

c 36. print sortedeliminatedmppp.tmp (eliminatedptppp.tmp (Vanita's Vector

c points, eliminated potential minus prime pivot points)

c in numerical order?

c

c

c 37. print allmppp.tmp (all Vanita's Vector minus prime pivot points,

c includes those that are also tppp)?

c

c

c

c 38. print allmpnumbers.tmp (the minus primes from the portion of the

c prime table you requested>?

c

c

c

c 39. print lonesomemppp.tmp (Vanita's Vector minus prime pivot points,

c excluding those that are also tppp)?

c

c

c

c 40. print lonesomempnumbers.tmp (the minus primes from the portion of the

c prime table you requested whose potential twin prime partners

c are composites>?

c

c The Logic Steps of this Chenault Sieve Program follow:

c

c A. Declare variables as necessary for Fortran compatable program

character scale*2, again, choices*80, filename*80, output

c

c scale = is if user plans to input span limits using the commonly

c used integer scale.

c = vv if user plans to input span limits using Vanita's Vector.

integer lowervv, lowerm, ichoice(100), upperlimit,

1 uppervv, upperm, oldpos, ca1, ca2, ca3, ca25,

2 vv(9999999, 3), upperis

c

c lowervv = user's lower limit on vv.

c lowerm = The lowest m value which will effect lowervv.

c ichoice(100) = array for registering user choices of output options

c uppervv = user's max limit on vv.

c upperm = The max m value which will effect uppervv.

c oldpos = comma locator in string parse logic

c vv(9999999, 4) = storage array for pc, pp, mc, or mp indicators,

c can hold up to 4 indicators for 9999999 vv points.

c loweris = user's lower input on is, if used

c upperis = user's upper input on is, if used

c

c B. Give user option of inputing limits as is (integer scale) or as

c vv (Vanita's Vector scale)

c note: all sieve calculations are done on vv scale.

c

5 print *, 'choose input scale'

print *, ' is(integer scale) or vv(Vanitas Vector scale)'

print *, ' default = vv'

read (5, '(a)') scale

if ((scale .eq. '') .or. (scale .eq. 'VV')) scale = 'vv'

if (scale .eq. 'IS') scale = 'is'

if ((scale .ne. 'is') .and. (scale .ne. 'vv')) go to 5

c

c

c C. Get user desired lower limit of output, default = 1. Remind user of

c scale choice (is or vv).

c (This version of the sieve program will accept thru 6 digit input)

c

c

c Record user desired lower limit as a Vanita's Vector point, convert if

c neccesary.

c

c If lower limit exceeds 6 digits, an error message appears.

c

c If user desired lower limit is positive, we proceed. If lower limit is

c not acceptable; tell user, give option to input other lower limit and

c give option of exiting.

c

10 print *, 'input lower limit of span on ', scale

print *, 'max input = 6 digits'

read (5, '(I6)') lowerlimit

c If user desired lower limit is positive, we proceed. If lower limit is

c not acceptable; tell user, give option to input other lower limit and

c give option of exiting.

if (lowerlimit .lt. 1) then

print *, 'lower limit is less than 1'

print *, 'e to exit, return to try again'

read (5, '(a)') again

if ((again .eq. 'e') .or. (again .eq. 'E')) stop

go to 10

endif

if (lowerlimit .gt. 999999) then

print *, 'lower limit is greater than 999999'

print *, 'e to exit, return to try again'

read (5, '(a)') again

if ((again .eq. 'e') .or. (again .eq. 'E')) stop

go to 10

endif

c If input is integer scale, adjust to vv, which hosts all

c internal calculations.

if (scale .eq. 'is') then

loweris = lowerlimit

lowervv = (lowerlimit + 2) / 6 ! gets vv

c all interior calculations are in vv

else

lowervv = lowerlimit

loweris = (6 * lowervv) - 1

endif

c

c D. Lower m limit needs to include the lowest m values which can affect

c the user desired span. The Chenault Algorithm which can exert maximum

c influence on the user min, using vv points less than the user defined

c span, is CA1, 6m(1)m(2) + m(1) + m(2).

c Expansion of the lower m limit can be maximized by:

c D.1. Setting m(1) = 1.

c D.2. CA1 then results in 6*m(2) + 1 + m(2)

c D.3. Setting 7*m(2) = (user desired lower vv limit) - 1

c D.4. This yields calculation starting points of

c m(1) = 1 and

c m(2) = ((user desired lower vv limit) - 1) / 7

c

lowerm = (lowervv - 1) / 7

print *, 'lowerm = ', lowerm

c

c E. Get user desired upper limit of span desired. Remind user of previous

c scale choice (is or vv). Make user aware of limited number size

c supported by the hardware/software.

c (This version of the sieve program will accept thru a 6 digit input)

c

c Convert is to vv if neccessary.

c

c Record user desired upper limit as a Vanita's Vector point.

c

c If upper > lower> 0, the program accepts the limits, else go to 1.

c

c If upper limit exceeds six digits, an error message appears.

c

c If user defined upper limit is greater than user desired lower limit,

c we proceed. If upper limit is not acceptable; tell user, give option to

c input other upper limit and give option of exiting.

c

20 print *, ' '

print *, ' '

print *, 'input upper limit of span on ', scale

print *, 'max input = 6 digits'

read (5, '(I6)') upperlimit

if (upperlimit .le. lowerlimit) then

print *, 'upper span limit is less than or equal to the lower',

1 ' span limit entered.'

print *, 'type e to exit, type a return to try again'

read (5, '(a)') again

if ((again .eq. 'e') .or. (again .eq. 'E')) stop

go to 20

endif

if (upperlimit .gt. 999999) then

print *, 'upper limit is greater than 999999'

print *, 'e to exit, return to try again'

read (5, '(a)') again

if ((again .eq. 'e') .or. (again .eq. 'E')) stop

go to 20

endif

if (scale .eq. 'is') then

upperis = upperlimit

uppervv = (upperlimit + 2) / 6 ! gets vv

c all interior calculations are in vv

else

uppervv = upperlimit

upperis =(uppervv * 6) + 1

endif

c

c

c F. Upper m limit needs to include the highest m values which can affect

c the user desired span. The Chenault Algorithm which can exert maximum

c influence on the user max, using vv points greater than the user defined

c span, is CA3, 6m(1)m(2) - m(1) - m(2).

c Expansion of the upper m limit can be maximized by:

c D.1. Setting m(1) = 1.

c D.2. CA3 then results in 6*m(2) - 1 - m(2)

c D.3. Setting 5*m(2) = (user desired upper vv limit) + 1

c D.4. This yields calculation points of m(1) = 1 and

c m(2) = ((user desired upper vv limit) + 1) / 5

c

upperm = (uppervv + 1) / 5

print *, 'upperm = ', upperm

c

c G. Activate Chenault Sieve such that limits are satisfied and all

c compromised vv points within the user defined span are noted.

c (note: The Chenault Sieve operates on Vanita's Vector, which is

c a replica of the integer scale. Each integer on Vanita's

c Vector represents a multiple of 6 on the integer scale,

c since all twin primes^ are centered around multiples of 6.)

c (^=except for the twin prime at 3, 5 which is an anomalie)

c

c

c note: The integers on Vanita's Vector which are not matched (compromised)

c by CA1 or CA2 or CA3 are tpppt.

c

c G. Indicate all vv in span that are satisfied by

c Chenault Algorithym I, 6m(1)m(2) + m(1) + m(2). This results from

c + * +, so we have a pc at 6(6m(1)m(2) + m(1) + m(2)) + 1. (is)

c

c G2. The method used for calculation may dictate the need for

c Indicating all vv in user span that are satisfied by

c 'Chenault Algorithm 2.5', 6m(1)m(2) - m(1) + m(2).

c Note: The method following, and used, does need ca25.

c

floatupperm = upperm

floatlowerm = lowerm

do m1 = 1, (int(sqrt(floatupperm)) + 1)

do m2 = upperm, int(sqrt(floatlowerm)), -1

ca1 = 6*m1*m2 + m1 + m2

if ((ca1 .ge. lowervv) .and. (ca1 .le. uppervv))

1 vv(ca1, 1) = 1

ca2 = 6*m1*m2 + m1 - m2

if ((ca2 .ge. lowervv) .and. (ca2 .le. uppervv))

1 vv(ca2, 2) = 2

ca25 = 6*m1*m2 - m1 + m2

if ((m1 .eq. 1) .and. (m2 .eq. 4)) print *, 'ca25 = ', ca25

if ((ca25 .ge. lowervv) .and. (ca25 .le. uppervv))

1 vv(ca25, 2) = 2

ca3 = 6*m1*m2 - m1 - m2

if ((ca3 .ge. lowervv) .and. (ca3 .le. uppervv))

1 vv(ca3, 3) = 3

enddo

enddo

c

c G2. Note (continued):

c The method following does not need ca25.

c

c G2.a. Indicate all vv in span that are satisfied by

c Chenault Algorithym I, 6m(1)m(2) + m(1) + m(2). This results from

c + * +, so we have a pc at 6(6m(1)m(2) + m(1) + m(2)) + 1. (is)

c

c do m1 = 1, upperm

c do m2 = 1, upperm

c ca1 = 6*m1*m2 + m1 + m2

c print *, 'ca1 = ', ca1

c if ((ca1 .ge. lowervv) .and. (ca1 .le. uppervv)) then

c vv(ca1, 1) = 1

c endif

c enddo

c enddo

c

c G2.b. Indicate all vv in span that are satisfied by

c Chenault Algorithym II, 6m(1)m(2) + m(1) - m(2). This results from

c + * -, so we have a mc at 6(6m(1)m(2) + m(1) - m(2)) - 1. (is)

c

c do m1 = 1, upperm

c do m2 = 1, upperm

c ca2 = 6*m1*m2 + m1 - m2

c if ((ca2 .ge. lowervv) .and. (ca2 .le. uppervv)) then

c vv(ca2, 2) = 2

c endif

c enddo

c enddo

c

c

c G2.c. Indicate all vv in span that are satisfied by

c Chenault Algorithym III, 6m(1)m(2) - m(1) - m(2). This results from

c - * -, so we have a pc at 6(6m(1)m(2) - m(1) - m(2)) + 1. (is)

c

c do m1 = 1, upperm

c do m2 = 1, upperm

c ca3 = 6*m1*m2 - m1 - m2

c if ((ca3 .ge. lowervv) .and. (ca3 .le. uppervv)) then

c vv(ca3, 3) = 3

c endif

c enddo

c enddo

c

c

c -----------------------------------------------------------------------

c ------------------- ----------------------------------------------------

c -----------------------------------------------------------------------

c

c REPORTS SECTION

c

c

25 print *, ' '

print *, ' Save output to a file? or Print to screen F/S '

1 ' def = F'

print *, ' '

read (5, '(a)') output

if ((output .eq. ' ') .or. (output .eq.'f')) output = 'F'

if (output .eq. 'F') then

print *, 'input filename of file which will hold output of',

1 ' this run of the segment sieve.'

read (5, '(a)') filename

open (1, file = filename, status='UNKNOWN', err=10000)

endif

30 print *, ' Page 1 of choices'

print ' '

print *, 'This program can output any permutation of the',

1 ' 40 starred choices.'

c The non-starred choices are logistical.

print *, ' '

print *, '*1 The Twin prime table.',

cg Note: detected by common voids in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) + m(1) - m(2) = CA2 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: ((common void) * 6) + 1 = pp and

c ((common void) * 6) - 1 = mp

c (is points)

1 ' (is points)'

print *, '*2 The Twin prime Pivot Point table.'

cg Note: The Married Plus and Married Minus

c Pivot Point tables are identical to

c (The Twin prime Pivot Point table).

c Note: detected by common voids in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) + m(1) - m(2) = CA2 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c (Vanitas Vector Points)

print *, ' Note: The Married Plus and Married Minus Pivot',

1 ' Point tables are identical to '

print *, ' 2 (The Twin prime Pivot Point table). ',

1 ' (Vanitas Vector Points)'

print *, ' '

print *, '*3 The Married Plus prime table.',

cg pp that are part of a twin prime pair

c Note: Twin primes are detected by common voids in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) + m(1) - m(2) = CA2 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: ((common void) * 6) + 1 is a married plus prime. (is points)

1 ' (is points)'

c pp that are part of a twin prime

print *, '*4 The Married Minus prime table.',

cg mp that are part of a twin prime pair

c Note: Twin primes are detected by common voids in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) + m(1) - m(2) = CA2 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: ((common void) * 6) - 1 is a married minus prime. (is points)

1 ' (is points)'

print *, ' '

print *, '*5 The prime table.',

cg (includes the primes in (pp, mc) and (pc, mp) and (pp, mp))

c Note: The pp are detected by common voids

c in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((common void of CA1 and CA2) * 6) + 1) is a pp.

c Note: The mp are detected by voids in the output from

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((void of CA2) * 6) - 1) is a mp.

c (is points)

1 ' (is points)'

print *, '*6 The prime Pivot Point table.'

cg (includes the Pivot Points for pairs: (pp, mc) and (pc, mp) and (pp, mp))

c Note: The Pivot Points for pp are detected by common voids

c in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: The Pivot Points for mp are detected by voids in output of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

print *, ' '

print *, '*7 The Plus prime table.',

cg Note: detected by common voids in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((common void of CA1 and CA3) * 6) + 1 = pp

c (is points)

1 ' (is points)'

print *, '*8 The Plus prime Pivot Point table.',

cg Note: detected by common voids in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c (Vanitas Vector Points)

1 ' (Vanitas Vector Points)'

print *, ' '

print *, '*9 The Minus prime table.',

cg Note: detected by voids in

c 6m(1)m(2) + m(1) - m(2) = CA2

c (void in CA2) * 6) - 1 = mp

c (is points)

1 ' (is points)'

print *, '*10 The Pivot Point table for Minus primes.',

cg Note: detected by voids in

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

1 ' (Vanitas Vector Points)'

print *, ' '

print *, '*11 The Lonesome prime table.',

c *11 Lonesome prime table.

cg (the primes in (pp, mc) and (pc, mp) pairs)

c (pp,mc) detected by Pivot Point being a common void in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c and Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c NOTE:((common void of CA1 and CA3) * 6) + 1 = pp

c ((member of CA2) * 6) - 1 = mc

c and

c (pc,mp) detected by Pivot Point being a member of either or both

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((member of either (or both) CA1 or CA3) * 6) + 1 = pc

c and Pivot Point being a void of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((void of CA2) * 6) - 1 = mp

c (is points)

1 ' (is points)'

print *, '*12 The Lonesome prime Pivot Point table.',

cg Pivot Points for (pp, mc) or (pc, mp) pairs

c detected by common voids in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c and Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c and

c detected by Pivot Point being a member of either (or both)

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c and being a void of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

1 ' (Vanitas Vector Points)'

print *, ' '

print *, '*13 The Lonesome Plus prime table.',

cg identifies primes from (pp,mc) pairs

c (pp,mc) detected by Pivot Point being a common void in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c and Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((common void of CA1 and CA3) * 6) + 1 = pp

c ((member of CA2) * 6) - 1 = mc

c (is points)

1 ' (is points)'

print *, '*14 The Lonesome Plus prime Pivot Point table.',

cg detected by Pivot Point being a common void in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c and Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

1 ' (Vanitas Vector Points)'

print *, ' '

print *, '*15 The Lonesome Minus prime table.',

cg identifies primes from (pc,mp) pairs

c detected by Pivot Point being a member of either (or both)

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((member of either (or both) CA1 or CA3) * 6) + 1 = pc

c and Pivot Point being a void of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((void of CA2) * 6) - 1 = mp

c (is points)

1 ' (is points)'

print *, '*16 Pivot Point table for Lonesome Minus primes.',

cg detected by Pivot Point being a member of either (or both)

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c and being a void of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

1 ' (Vanitas Vector Points)'

print *, ' '

print *, '*17 Composite table (all pc and all mc).',

cg pc detected by Pivot Point being a member of either (or both)

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((member of either (or both) CA1 or CA3) * 6) + 1 = pc

c mc detected by Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((member of CA2) * 6) - 1 = mc

c (is points)

1 ' (is points)'

print *, '*18 Pivot Point table for all composites. ',

c *18 Pivot Point table for all composites (pc's and mc's).

cg Pivot Point for pc detected by being a member of either (or both)

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c Pivot Point for mc detected by being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

1 '(Vanitas Vector Points)'

print *, ' '

print *, '41 All starred choices on page 1'

print *, ' If 42, 43, or 44 are chosen, no further options ',

1 'are offered'

print *, '42 All is starred results, all pages (is points)'

print *, '43 All vv starred results, all pages ',

1 '(Vanitas Vector Points)'

print *, '44 All 40 starred choices (is and Vanitas Vector)'

print *, ' '

print *, 'Type line number(s) of outputs desired from this page ',

1 ' , separated by commas.'

print *, ' (use only 1 line) (do not type * or spaces(blanks)'

read (5, '(a)') choices

oldpos = 0 ! indicate that no commas in string have been found so far

if (choices(1:1) .eq. ' ') go to 40 ! blank line

do i = 1, 80

if ((choices(i:i) .eq. ',') .or. (choices(i:i) .eq. ' ')) then

c if a comma is found, process here

c if a blank is found, we assume last input

if ((i - oldpos) .eq. 3) then

isubscript = ((ichar(choices((oldpos+1):(i-2)))) -48)*10

isubscript = isubscript +

1 (ichar(choices((oldpos+2):(i-1)))) - 48

ichoice (isubscript) = isubscript

else

ichoice((ichar(choices((oldpos+1):(i-1)))) - 48) ! turn on option

1 = (ichar(choices((oldpos+1):(i-1)))) - 48

endif

oldpos = i ! mark position of this comma

endif

if (choices(i:i) .eq. ' ') go to 40 ! if we have blank, exit parse

enddo

40 oldpos = 0 ! clear for next string test

c 41 test for Chose all starred choices on this page

if (ichoice(41) .eq. 41) then

do i = 1, 18

ichoice(i) = i

enddo

ichoice(41) = 0

endif

c 42 test for All is starred results, all pages (is points only)

if (ichoice(42) .eq. 42) then

ichoice(1) = 1 ! The Twin prime table.

cg Note: detected by common voids in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) + m(1) - m(2) = CA2 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: ((common void) * 6) + 1 = pp and

c ((common void) * 6) - 1 = mp

c (is points)

ichoice(3) = 3 ! The Married Plus prime table.

cg pp that are part of a twin prime pair

c Note: Twin primes are detected by common voids in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) + m(1) - m(2) = CA2 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: ((common void) * 6) + 1 is a married plus prime. (is points)

c (is points)

ichoice(4) = 4 ! The Married Minus prime table.

cg mp that are part of a twin prime pair

c Note: Twin primes are detected by common voids in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) + m(1) - m(2) = CA2 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: ((common void) * 6) - 1 is a married minus prime. (is points)

c (is points)

ichoice(5) = 5 ! The prime table. (is points)

cg (includes the primes in (pp, mc) and (pc, mp) and (pp, mp))

c Note: The pp are detected by common voids

c in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((common void of CA1 and CA2) * 6) + 1) is a pp.

c Note: The mp are detected by voids in the output from

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((void of CA2) * 6) - 1) is a mp.

c (is points)

ichoice(7) = 7 ! The Plus prime table.

cg Note: detected by common voids in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((common void of CA1 and CA3) * 6) + 1 = pp

c (is points)

ichoice(9) = 9 ! The Minus prime table.

cg Note: detected by voids in

c 6m(1)m(2) + m(1) - m(2) = CA2

c (void in CA2) * 6) - 1 = mp

c (is points)

ichoice(11) = 11 ! The Lonesome prime table. (is points)

cg (the primes in (pp, mc) and (pc, mp) pairs)

c (pp,mc) detected by Pivot Point being a common void in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c and Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c NOTE:((common void of CA1 and CA3) * 6) + 1 = pp

c ((member of CA2) * 6) - 1 = mc

c and

c (pc,mp) detected by Pivot Point being a member of either or both

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((member of either (or both) CA1 or CA3) * 6) + 1 = pc

c and Pivot Point being a void of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((void of CA2) * 6) - 1 = mp

c (is points)

ichoice(13) = 13 ! The Lonesome Plus prime table. (is points)

cg identifies primes from (pp,mc) pairs

c (pp,mc) detected by Pivot Point being a common void in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c and Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((common void of CA1 and CA3) * 6) + 1 = pp

c ((member of CA2) * 6) - 1 = mc

c (is points)

ichoice(15) = 15 ! The Lonesome Minus prime table. (is points)

cg identifies primes from (pc,mp) pairs

c detected by Pivot Point being a member of either (or both)

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((member of either (or both) CA1 or CA3) * 6) + 1 = pc

c and Pivot Point being a void of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((void of CA2) * 6) - 1 = mp

c (is points)

ichoice(17) = 17 ! Composite table (all pc and all mc).

cg pc detected by Pivot Point being a member of either (or both)

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((member of either (or both) CA1 or CA3) * 6) + 1 = pc

c mc detected by Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((member of CA2) * 6) - 1 = mc

c (is points)

ichoice(19) = 19 ! The pc table.

cg pc detected by Pivot Point being a member of either

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3 (or both)

c ((member of either (or both) CA1 or CA3) * 6) + 1 = pc

c (is points)

ichoice(21) = 21 ! The Minus Composite table. (is points)

c 21 mc table

cg mc detected by Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((member of CA2) * 6) - 1 = mc

c (is points)

ichoice(23) = 23 ! The pc table generated by

c CA1 = 36m(1)m(2) + 6m(1) + 6m(2) + 1

cg those pc detected by Pivot Point being a member of

c 6m(1)m(2) + m(1) + m(2) = CA1

c ((member of CA1) * 6) + 1 = pc

c (is points)

ichoice(24) = 24 ! Voids in pc composite table generated by

cg 36m(1)m(2) + 6m(1) + 6m(2) + 1 (CA1)(is points)

c ((n * 6) + 1) Voids in pc table generated by (CA1 * 6) + 1

c (is points)

ichoice(27) = 27 ! The mc composite table generated by

c 36m(1)m(2) + 6m(1) - 6m(2) - 1 (is points)

cg The mc table is detected by a Pivot Point being generated by CA2.

c ((member of CA2) * 6) - 1 = mc

c (is points)

ichoice(28) = 28 ! Voids(mp) in mc table generated by

c 36m(1)m(2) + 6m(1) - 6m(2) - 1

c ((n * 6) -1) = mp voids in mc table generated by

cg 36m(1)m(2) +6m(1) -6m(2) -1 = (CA2 * 6) - 1

c ((void of CA2) * 6) - 1 = mp

c (is points)

ichoice(31) = 31 ! The mc table generated by

c 36m(1)m(2) - 6m(1) + 6m(2) - 1

cg is identical to 27 output since m(1) and m(2) are interchangeable.

c (is points)

c is identical to 31 output. (is points)

ichoice(32) = 32 ! ((n * 6) -1) Voids(mp's) in mc table generated

cg by 36m(1)m(2) - 6m(1) + 6m(2) - 1

c is identical to 28 output. (is points)

c (is points)

ichoice(35) = 35 ! pc table generated by

cg 36m(1)m(2) - 6m(1) - 6m(2) + 1 = (CA3 * 6) + 1

c (is points)

ichoice(36) = 36 ! Voids in plus composite(pc) table generated by

c 36m(1)m(2) - 6m(1) - 6m(2) + 1 (CA3)(is points)

c (is points)

endif

c 43 test for All vv starred results, all pages

c (Vanitas Vector Points)

if (ichoice(43) .eq. 43) then

ichoice(2) = 2 ! The Twin prime Pivot Point table.

cg 2. The Twin prime Pivot Point table.

c Note: The Married Plus and Married Minus

c Pivot Point tables are identical to

c (The Twin prime Pivot Point table).

c Note: detected by common voids in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) + m(1) - m(2) = CA2 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c (Vanitas Vector Points)

ichoice(6) = 6 ! The prime Pivot Point table.

cg (includes the Pivot Points for pairs: (pp, mc) and (pc, mp) and (pp, mp))

c Note: The Pivot Points for pp are detected by common voids

c in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: The Pivot Points for mp are detected by voids in output of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

ichoice(8) = 8 ! The Plus prime Pivot Point table.

cg Note: detected by common voids in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c (Vanitas Vector Points)

ichoice(10) = 10 ! The Pivot Point table for Minus primes.

cg Note: detected by voids in

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

ichoice(12) = 12 ! The Lonesome prime Pivot Point table.

cg Pivot Points for (pp, mc) or (pc, mp) pairs

c detected by common voids in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c and Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c and

c detected by Pivot Point being a member of either (or both)

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c and being a void of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

ichoice(14) = 14 ! The Lonesome Plus prime Pivot Point table.

cg detected by Pivot Point being a common void in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c and Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

ichoice(16) = 16 ! Pivot Point table for Lonesome Minus primes.

cg detected by Pivot Point being a member of either (or both)

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c and being a void of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

ichoice(18) = 18 ! Pivot Point table for all composites.

c 18 Pivot Point table for all composites (pc's and mc's).

cg Pivot Point for pc detected by being a member of either (or both)

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c Pivot Point for mc detected by being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

ichoice(20) = 20 ! Plus Compromised Pivot Point table.

cg pc detected by Pivot Point being a member of either

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3 (or both)

c (Vanitas Vector Points)

ichoice(22) = 22 ! The Minus Composite Pivot Point table.

c 22 Pivot Point table for mc.

cg mc detected by Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

ichoice(25) = 25 ! The Pivot Point table generated by CA1

cg (Vanitas Vector Points)

ichoice(26) = 26 ! Voids in the Pivot Point table generated by CA1

cg = Chenault Algorithym I = 6m(1)m(2) + m(1) + m(2)

c (Vanitas Vector Points)

ichoice(29) = 29 ! The Pivot Point table for mc's can be generated

c by CA2 = 6m(1)m(2) + m(1) - m(2)

c (6 * (member of CA2)) - 1 = mc

c (Vanitas Vector Points)

c Note: is identical to the

c Pivot Point table generated by

c 6m(1)m(2) - m(1) + m(2)

ichoice(30) = 30 ! Voids in the Pivot Point table generated by CA2=

cg 6m(1)m(2) + m(1) - m(2)

c note: these voids are Pivot Points for mp

c (Vanitas Vector Points)

ichoice(33) = 33 ! The Pivot Point table generated by

cg 6m(1)m(2) - m(1) + m(2)

c (Vanita's Vector Points)

c Note: is identical to the

c Pivot Point table generated by

c 6m(1)m(2) + m(1) - m(2) = CA2

c (is identical to 29 output)

ichoice(34) = 34 ! Voids in the Pivot Point table generated by

cg 6m(1)m(2) - m(1) + m(2)

c is identical to 30 output.

c (Vanitas Vector Points)

ichoice(37) = 37 ! Pivot Point table generated by

cg 6m(1)m(2) - m(1) - m(2) = CA3

c (Vanitas Vector Points)

ichoice(38) = 38 ! Voids in the Pivot Point table generated by

cg 6m(1)m(2) - m(1) - m(2) = CA3

c (Vanitas Vector Points)

ichoice(39) = 39 ! Pivot Point table generated by combining the

cg 6m(1)m(2) + m(1) + m(2) = CA1

c and 6m(1)m(2) - m(1) - m(2) = CA3

c Note: ((member of either (or both) CA1 or CA3) * 6) + 1 = pc

c (Vanitas Vector Points)

ichoice(40) = 40 ! voids in Pivot Points table generated by

cg combining output from 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: ((commom void for CA1 and CA3) * 6) + 1 = pp

c (Vanitas Vector Points)

endif

c 44 test for All pages starred choices (is and Vanitas Vector)

if (ichoice(44) .eq. 44) then

do i = 1, 40 ! all starred choices

ichoice(i) = i

enddo

c keep going and start to process

endif

c

c 1. The Twin prime table.

cg Note: detected by common voids in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) + m(1) - m(2) = CA2 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: ((common void) * 6) + 1 = pp and

c ((common void) * 6) - 1 = mp

c (is points)

c

cg 2. The Twin prime Pivot Point table.

c Note: The Married Plus and Married Minus

c Pivot Point tables are identical to

c (The Twin prime Pivot Point table).

c Note: detected by common voids in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) + m(1) - m(2) = CA2 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c (Vanitas Vector Points)

c

cg 3. The Married Plus prime table.

c pp that are part of a twin prime pair

c Note: Twin primes are detected by common voids in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) + m(1) - m(2) = CA2 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: ((common void) * 6) + 1 is a married plus prime. (is points)

c

c 4. The Married Minus prime table.

cg mp that are part of a twin prime pair

c Note: Twin primes are detected by common voids in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) + m(1) - m(2) = CA2 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: ((common void) * 6) - 1 is a married minus prime. (is points)

c (is points)

c

c 5. The prime table

cg (includes the primes in (pp, mc) and (pc, mp) and (pp, mp))

c Note: The pp are detected by common voids

c in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((common void of CA1 and CA2) * 6) + 1) is a pp.

c Note: The mp are detected by voids in the output from

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((void of CA2) * 6) - 1) is a mp.

c (is points)

c

c 6. The prime Pivot Point table.

cg (includes the Pivot Points for pairs: (pp, mc) and (pc, mp) and (pp, mp))

c Note: The Pivot Points for pp are detected by common voids

c in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: The Pivot Points for mp are detected by voids in output of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

c

c 7. The Plus prime table.

cg Note: detected by common voids in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((common void of CA1 and CA3) * 6) + 1 = pp

c (is points)

c

c 8. The Plus prime Pivot Point table. (Vanita's Vector Points)

cg Note: detected by common voids in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c (Vanitas Vector Points)

c

c 9. The Minus prime table.

cg Note: detected by voids in

c 6m(1)m(2) + m(1) - m(2) = CA2

c (void in CA2) * 6) - 1 = mp

c (is points)

c

c 10. The Pivot Point table for Minus primes.

cg Note: detected by voids in

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

c

c 11. The Lonesome prime table.

cg (the primes in (pp, mc) and (pc, mp) pairs)

c (pp,mc) detected by Pivot Point being a common void in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c and Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c NOTE:((common void of CA1 and CA3) * 6) + 1 = pp

c ((member of CA2) * 6) - 1 = mc

c and

c (pc,mp) detected by Pivot Point being a member of either or both

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((member of either (or both) CA1 or CA3) * 6) + 1 = pc

c and Pivot Point being a void of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((void of CA2) * 6) - 1 = mp

c (is points)

c

c 12. The Lonesome prime Pivot Point table.

cg Pivot Points for (pp, mc) or (pc, mp) pairs

c detected by common voids in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c and Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c and

c detected by Pivot Point being a member of either (or both)

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c and being a void of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

c

c 13. The Lonesome Plus prime table.

cg identifies primes from (pp,mc) pairs

c (pp,mc) detected by Pivot Point being a common void in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c and Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((common void of CA1 and CA3) * 6) + 1 = pp

c ((member of CA2) * 6) - 1 = mc

c (is points)

c

c 14. The Lonesome Plus Pivot Point table.

cg detected by Pivot Point being a common void in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c and Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

c

c 15. The Lonesome Minus prime table.

cg identifies primes from (pc,mp) pairs

c detected by Pivot Point being a member of either (or both)

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((member of either (or both) CA1 or CA3) * 6) + 1 = pc

c and Pivot Point being a void of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((void of CA2) * 6) - 1 = mp

c (is points)

c

c 16. Pivot Point table for Lonesome Minus primes.

cg detected by Pivot Point being a member of either (or both)

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c and being a void of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

c

c 17. Composite table (all pc and all mc).

cg pc detected by Pivot Point being a member of either (or both)

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((member of either (or both) CA1 or CA3) * 6) + 1 = pc

c mc detected by Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((member of CA2) * 6) - 1 = mc

c (is points)

c

c 18. Pivot Point table for all composites(pc's and mc's).

cg Pivot Point for pc detected by being a member of either (or both)

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c Pivot Point for mc detected by being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

c

c 19. The pc table.

cg pc detected by Pivot Point being a member of either

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3 (or both)

c ((member of either (or both) CA1 or CA3) * 6) + 1 = pc

c (is points)

c

c 20. Plus Compromised Pivot Point table.

cg pc detected by Pivot Point being a member of either

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3 (or both)

c (Vanitas Vector Points)

c

c 21. mc table

cg mc detected by Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((member of CA2) * 6) - 1 = mc

c (is points)

c

c 22. Pivot Point table for mc.

cg mc detected by Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

c

c 23. The pc table generated by CA1

cg those pc detected by Pivot Point being a member of

c 6m(1)m(2) + m(1) + m(2) = CA1

c ((member of CA1) * 6) + 1 = pc

c (is points)

c

c 24. ((n * 6) + 1) Voids in pc table generated by (CA1 * 6) + 1

cg (is points)

c

c 25. The Pivot Point table generated by CA1

cg (Vanitas Vector Points)

c

c 26. Voids in the Pivot Point table generated by CA1

cg = Chenault Algorithym I = 6m(1)m(2) + m(1) + m(2)

c (Vanitas Vector Points)

c

c 27. The mc table is detected Pivot Point being generated by CA2

cg (is points)

c ((member of CA2) * 6) - 1 = mc

c (is points)

c

c 28. voids(mp) in mc table generated by 36m(1)m(2) +6m(1) -6m(2) -1

cg ((void of CA2) * 6) - 1 = mp

c (is points)

c

c 29. The Pivot Point table for mc's can be generated by

cg CA2 = 6m(1)m(2) + m(1) - m(2)

c (6 * (member of CA2)) - 1 = mc

c (Vanitas Vector Points)

c Note: is identical to the

c Pivot Point table generated by

c 6m(1)m(2) - m(1) + m(2)

c

c 30. Voids in the Pivot Point table generated by CA2 =

cg 6m(1)m(2) + m(1) - m(2)

c note: these voids are Pivot Points for mp

c (Vanita's Vector Points)

c

c 31. The mc table generated by 36m(1)m(2) - 6m(1) + 6m(2) - 1

cg is identical to 27 output since m(1) and m(2) are interchangeable.

c (is points)

c

c 32. ((n * 6) -1 ) Voids(these are mp) in the mc table generated by

cg 36m(1)m(2) - 6m(1) + 6m(2) -1

c is identical to 28 output.

c (is points)

c

c 33. The Pivot Point table generated by

cg 6m(1)m(2) - m(1) + m(2) = CA2

c (Vanita's Vector Points)

c Note: is identical to the

c Pivot Point table generated by

c 6m(1)m(2) + m(1) - m(2) = CA2

c (is identical to 29 output)

c

c 34. Voids in the Pivot Point table generated by

cg 6m(1)m(2) - m(1) + m(2)

c (identical to 30 output)

c (Vanita's Vector Points)

c

c 35. pc table generated by

cg 36m(1)m(2) - 6m(1) - 6m(2) + 1 = (CA3 * 6) + 1

c (is points)

c

c 36. ((n*6)+1) voids (possible pp) in pc table generated by

cg 36m(1)m(2) - 6m(1) - 6m(2) + 1

c (is points)

c

c 37. Pivot Point table generated by

cg 6m(1)m(2) - m(1) - m(2) = CA3

c (Vanitas Vector Points)

c

c 38. Voids in the Pivot Point table generated by

cg 6m(1)m(2) - m(1) - m(2) = CA3

c (Vanitas Vector Points)

c

c 39. Pivot Point table generated by combining the output from

cg 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: ((member of either (or both) CA1 or CA3) * 6) + 1 = pc

c (Vanitas Vector Points)

c

c 40. voids in Pivot Points table generated by

cg combining output from 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: ((commom void for CA1 and CA3) * 6) + 1 = pp

c (Vanitas Vector Points)

c

c *1 Twin prime table

cg Note: detected by common voids in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) + m(1) - m(2) = CA2 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: ((common void) * 6) + 1 = pp and

c ((common void) * 6) - 1 = mp

c (is points)

if (ichoice(1) .eq. 1) then

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) ' 1. Twin prime table (is points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, ' 1. Twin prime table (is points)'

endif

c do i = lowervv, uppervv

c print *, ' vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

do i = lowervv, uppervv ! find primes

if ((vv(i,2) .eq. 0) .and. (vv(i,1) .eq. 0) .and.

1 (vv(i,3) .eq. 0)) then

if (output .eq. 'F') then

write(1, *) ' twin prime at', ((6 * i) - 1),

1 ',',((6 * i) + 1)

else

print *, ' twin prime at ', ((6 * i) - 1), ' , ',

1 ((6 * i) + 1)

endif

endif

enddo

endif

c *2 Pivot Point table for Twin primes. (Vanitas Vector Points)

cg 2. The Twin prime Pivot Point table.

c Note: The Married Plus and Married Minus

c Pivot Point tables are identical to

c (The Twin prime Pivot Point table).

c Note: detected by common voids in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) + m(1) - m(2) = CA2 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c (Vanitas Vector Points)

if (ichoice(2) .eq. 2) then

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) ' 2. Pivot Point table for Twin primes. ',

1 ' (Vanitas Vector Points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, ' 2. Pivot Point table for Twin primes. ',

1 ' (Vanitas Vector Points)'

endif

c do i =lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

do i = lowervv, uppervv ! find primes

if ((vv(i,2) .eq. 0) .and. (vv(i,1) .eq. 0) .and.

1 (vv(i,3) .eq. 0)) then

if (output .eq. 'F') then

write (1, *) ' Pivot Point for twin prime at ',

1 'vv(', i, ')'

else

print *, ' Pivot Point for twin prime at ',

1 'vv(', i, ')'

endif

endif

enddo

endif

c *3 Married Plus prime table.

cg pp that are part of a twin prime pair

c Note: Twin primes are detected by common voids in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) + m(1) - m(2) = CA2 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: ((common void) * 6) + 1 is a married plus prime. (is points)

if (ichoice(3) .eq. 3) then

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) ' 3. Married Plus prime table. (is points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, ' 3. Married Plus prime table. (is points)'

endif

c do i = lowervv, uppervv

print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

1 vv(i,1), vv(i,2), vv(i,3)

c enddo

do i = lowervv, uppervv ! find primes

if ((vv(i,2) .eq. 0) .and. (vv(i,1) .eq. 0) .and.

1 (vv(i,3) .eq. 0)) then

if (output .eq. 'F') then

write (1, *) ' Married Plus prime at ', (6*i) + 1

else

print *, ' Married Plus prime at ', (6*i) + 1

endif

endif

enddo

endif

c *4 Married Minus prime table. (is points)

cg mp that are part of a twin prime pair

c Note: Twin primes are detected by common voids in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) + m(1) - m(2) = CA2 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: ((common void) * 6) - 1 is a married minus prime. (is points)

if (ichoice(4) .eq. 4) then

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) ' 4. Married Minus prime table. (is points) '

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, ' 4. Married Minus prime table. (is points) '

endif

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

do i = lowervv, uppervv ! find primes

if ((vv(i,2) .eq. 0) .and. (vv(i,1) .eq. 0) .and.

1 (vv(i,3) .eq. 0)) then

if (output .eq. 'F') then

write (1, *) ' Married Minus prime at ', (6*i)-1

else

print *, ' Married Minus prime at ', (6*i) - 1

endif

endif

enddo

endif

c Note: The Married Plus and Married Minus Pivot Point tables

c are identical to 2 (The Twin prime Pivot Point table).

c (Vanitas Vector Points)

c *5 prime table. (is points)

cg (includes the primes in (pp, mc) and (pc, mp) and (pp, mp))

c Note: The pp are detected by common voids

c in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((common void of CA1 and CA2) * 6) + 1) is a pp.

c Note: The mp are detected by voids in the output from

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((void of CA2) * 6) - 1) is a mp.

c (is points)

if (ichoice(5) .eq. 5) then

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) ' 5. prime table. (is points) '

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, ' 5. prime table. (is points) '

endif

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

do i = lowervv, uppervv ! find primes

if (vv(i,2) .eq. 0) then

if (output .eq. 'F') then

write (1, *) ' prime at ', ((6 * i) - 1)

else

print *, ' prime at ', ((6 * i) - 1)

endif

endif

if ((vv(i,1) .eq. 0) .and. (vv(i,3) .eq. 0)) then

if (output .eq. 'F') then

write (1, *) ' prime at ', ((6 * i) + 1)

else

print *, ' prime at ', ((6 * i) + 1)

endif

endif

enddo

endif

c *6 Pivot Point table for primes.

cg (includes the Pivot Points for pairs: (pp, mc) and (pc, mp) and (pp, mp))

c Note: The Pivot Points for pp are detected by common voids

c in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: The Pivot Points for mp are detected by voids in output of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

if (ichoice(6) .eq. 6) then

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) ' 6. Pivot Point table for primes. ',

1 ' (Vanitas Vector Points) '

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, ' 6. Pivot Point table for primes. ',

1 ' (Vanitas Vector Points) '

endif

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

do i = lowervv, uppervv ! find primes

if (vv(i,2) .eq. 0) then

if (output .eq. 'F') then

write (1, *) ' Pivot Point for minus prime at ',

1 i

else

print *, ' Pivot Point for minus prime at ', i

endif

endif

if ((vv(i,1) .eq. 0) .and. (vv(i,3) .eq. 0)) then

if (output .eq. 'F') then

write (1, *) ' Pivot point for plus prime at ',

1 i

else

print *, ' Pivot point for plus prime at ', i

endif

endif

enddo

endif

c *7 Plus prime table.

cg Note: detected by common voids in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((common void of CA1 and CA3) * 6) + 1 = pp

c (is points)

if (ichoice(7) .eq. 7) then

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) ' 7. Plus prime table. (is points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, ' 7. Plus prime table. (is points)'

endif

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

do i = lowervv, uppervv ! find primes

if ((vv(i,1) .eq. 0) .and. (vv(i,3) .eq. 0)) then

if (output .eq. 'F') then

write (1, *) ' plus prime at ', (6 * i) + 1

else

print *, ' plus prime at ', (6 * i) + 1

endif

endif

enddo

endif

c *8 Pivot Point table for Plus primes.

cg Note: detected by common voids in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c (Vanitas Vector Points)

if (ichoice(8) .eq. 8) then

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) ' 8. Pivot Point table for Plus primes',

1 ' (Vanitas Vector Points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, ' 8. Pivot Point table for Plus primes',

1 ' (Vanitas Vector Points)'

endif

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

do i = lowervv, uppervv ! find primes

if ((vv(i,1) .eq. 0) .and. (vv(i,3) .eq. 0)) then

if (output .eq. 'F') then

write (1, *) ' Pivot Point for Plus prime at ',i

else

print *, ' Pivot Point for Plus prime at ', i

endif

endif

enddo

endif

c *9 Minus prime table. (is points)

cg Note: detected by voids in

c 6m(1)m(2) + m(1) - m(2) = CA2

c (void in CA2) * 6) - 1 = mp

c (is points)

if (ichoice(9) .eq. 9) then

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) ' 9. Minus prime table. (is points) '

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, ' 9. Minus prime table. (is points) '

endif

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

do i = lowervv, uppervv ! find primes

if (vv(i,2) .eq. 0) then

if (output .eq. 'F') then

write (1, *) ' Minus prime at ', (6 * i ) - 1

else

print *, ' Minus prime at ', (6 * i ) - 1

endif

endif

enddo

endif

c *10 Pivot Point table for Minus primes.

cg Note: detected by voids in

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

if (ichoice(10) .eq. 10) then

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) ' 10. Pivot Point table for Minus primes. ',

1 ' (Vanitas Vector Points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, ' 10. Pivot Point table for Minus primes. ',

1 ' (Vanitas Vector Points)'

endif

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

do i = lowervv, uppervv ! find primes

if (vv(i,2) .eq. 0) then

if (output .eq. 'F') then

write (1, *) ' Pivot Point for Minus prime',

1 ' at', i

else

print *, ' Pivot Point for Minus prime at ', i

endif

endif

enddo

endif

c *11 Lonesome prime table.

cg (the primes in (pp, mc) and (pc, mp) pairs)

c (pp,mc) detected by Pivot Point being a common void in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c and Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c NOTE:((common void of CA1 and CA3) * 6) + 1 = pp

c ((member of CA2) * 6) - 1 = mc

c and

c (pc,mp) detected by Pivot Point being a member of either or both

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((member of either (or both) CA1 or CA3) * 6) + 1 = pc

c and Pivot Point being a void of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((void of CA2) * 6) - 1 = mp

c (is points)

if (ichoice(11) .eq. 11) then

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) ' 11. Lonesome prime table. (is points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, ' 11. Lonesome prime table. (is points)'

endif

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

do i = lowervv, uppervv ! find primes

if ((vv(i,2) .eq. 0) .and. ((vv(i,1) .ne. 0) .or.

1 (vv(i,3) .ne. 0))) then

if (output .eq. 'F') then

write (1, *) ' Lonesome prime at ',(6 * i ) - 1

else

print *, ' Lonesome prime at ', (6 * i ) - 1

endif

endif

if ((vv(i,2) .ne. 0) .and. ((vv(i,1) .eq. 0) .and.

1 (vv(i,3) .eq. 0))) then

if (output .eq. 'F') then

write (1, *) ' Lonesome prime at ',(6 * i ) +1

else

print *, ' Lonesome prime at ', (6 * i ) + 1

endif

endif

enddo

endif

c *12 Pivot Point table for Lonesome primes.

cg Pivot Points for (pp, mc) or (pc, mp) pairs

c detected by common voids in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c and Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c and

c detected by Pivot Point being a member of either (or both)

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c and being a void of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

if (ichoice(12) .eq. 12) then

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) ' 12. Pivot Point table for Lonesome primes.',

1 ' (Vanitas Vector Points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, ' 12. Pivot Point table for Lonesome primes.',

1 ' (Vanitas Vector Points)'

endif

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

do i = lowervv, uppervv ! find primes

if ((vv(i,2) .eq. 0) .and. ((vv(i,1) .ne. 0) .or.

1 (vv(i,3) .ne. 0))) then

if (output .eq. 'F') then

write (1, *) ' Pivot Point for Lonesome ',

1 'prime at ', i

else

print *, ' Pivot Point for Lonesome ',

1 'prime at ', i

endif

endif

if ((vv(i,2) .ne. 0) .and. ((vv(i,1) .eq. 0) .and.

1 (vv(i,3) .eq. 0))) then

if (output .eq. 'F') then

write (1, *) ' Pivot Point for Lonesome ',

1 'prime at ', i

else

print *, ' Pivot Point for Lonesome ',

1 'prime at ', i

endif

endif

enddo

endif

c *13 Lonesome Plus prime table.

cg identifies primes from (pp,mc) pairs

c (pp,mc) detected by Pivot Point being a common void in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c and Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((common void of CA1 and CA3) * 6) + 1 = pp

c ((member of CA2) * 6) - 1 = mc

c (is points)

if (ichoice(13) .eq. 13) then

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) ' 13. Lonesome Plus prime table. (is points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, ' 13. Lonesome Plus prime table. (is points)'

endif

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

do i = lowervv, uppervv ! find primes

if ((vv(i,2) .ne. 0) .and. ((vv(i,1) .eq. 0) .and.

1 (vv(i,3) .eq. 0))) then

if (output .eq. 'F') then

write (1, *) ' Lonesome Plus prime at ',

1 (6 * i) + 1

else

print *, ' Lonesome Plus prime at ', (6 * i) + 1

endif

endif

enddo

endif

c *14 Pivot Point table for Lonesome Plus primes.

cg detected by Pivot Point being a common void in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c and Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

if (ichoice(14) .eq. 14) then

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) ' 14. Pivot Point table for Lonesome Plus ',

1 'primes. (Vanitas Vector Points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, ' 14. Pivot Point table for Lonesome Plus ',

1 'primes. (Vanitas Vector Points)'

endif

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

do i = lowervv, uppervv ! find primes

if ((vv(i,2) .ne. 0) .and. ((vv(i,1) .eq. 0) .and.

1 (vv(i,3) .eq. 0))) then

if (output .eq. 'F') then

write (1, *) ' Pivot Point for Lonesome Plus ',

1 'prime at ', i

else

print *, ' Pivot Point for Lonesome Plus prime',

1 ' at ', i

endif

endif

enddo

endif

c *15 Lonesome Minus prime table.

cg identifies primes from (pc,mp) pairs

c detected by Pivot Point being a member of either (or both)

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((member of either (or both) CA1 or CA3) * 6) + 1 = pc

c and Pivot Point being a void of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((void of CA2) * 6) - 1 = mp

c (is points)

if (ichoice(15) .eq. 15) then

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) '15. Lonesome Minus prime table. (is points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, '15. Lonesome Minus prime table. (is points)'

endif

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

do i = lowervv, uppervv ! find primes

if ((vv(i,2) .eq. 0) .and. ((vv(i,1) .ne. 0) .or.

1 (vv(i,3) .ne. 0))) then

if (output .eq. 'F') then

write (1, *) ' Lonesome Minus prime at ',

1 (6 * i) - 1

else

print *, ' Lonesome Minus prime at ', (6 * i) - 1

endif

endif

enddo

endif

c *16 Pivot Point table for Lonesome Minus primes.

cg detected by Pivot Point being a member of either (or both)

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c and being a void of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

if (ichoice(16) .eq. 16) then

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) ' 16. Pivot Point table for Lonesome Minus ',

1 'primes. (Vanitas Vector Points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, ' 16. Pivot Point table for Lonesome Minus ',

1 'primes. (Vanitas Vector Points)'

endif

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

do i = lowervv, uppervv ! find primes

if ((vv(i,2) .eq. 0) .and. ((vv(i,1) .ne. 0) .or.

1 (vv(i,3) .ne. 0))) then

if (output .eq. 'F') then

write (1, *) ' Pivot Point for Lonesome Minus ',

1 'prime at ', i

else

print *, ' Pivot Point for Lonesome Minus ',

1 'prime at ', i

endif

endif

enddo

endif

c *17 Composite table (all pc and all mc).

cg pc detected by Pivot Point being a member of either (or both)

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((member of either (or both) CA1 or CA3) * 6) + 1 = pc

c mc detected by Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((member of CA2) * 6) - 1 = mc

c (is points)

if (ichoice(17) .eq. 17) then

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) ' 17. (n*6)+-1 composite table. (is points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, ' 17. (n*6)+-1 composite table. (is points)'

endif

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

do i = lowervv, uppervv ! find primes

if (vv(i,2) .ne. 0) then

if (output .eq. 'F') then

write (1, *) ' mc at ', (6 * i) - 1

else

print *, ' mc at ', (6 * i) - 1

endif

endif

if ((vv(i,1) .ne. 0) .or. (vv(i,3) .ne. 0)) then

if (output .eq. 'F') then

write (1, *) ' pc at ', (6 * i) + 1

else

print *, ' pc at ', (6 * i) + 1

endif

endif

enddo

endif

if (ichoice(18) .eq. 18) then

c *18 Pivot Point table for all composites (pc's and mc's).

cg Pivot Point for pc detected by being a member of either (or both)

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c Pivot Point for mc detected by being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) ' 18. Pivot Point table for (n*6)+-1 ',

1 'composites. (Vanitas Vector Points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, ' 18. Pivot Point table for (n*6)+-1 ',

1 'composites. (Vanitas Vector Points)'

endif

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

do i = lowervv, uppervv ! find primes

if (vv(i,2) .ne. 0) then

if (output .eq. 'F') then

write (1, *) ' Pivot Point for mc at ', i

else

print *, ' Pivot Point for mc at ', i

endif

endif

if ((vv(i,1) .ne. 0) .or. (vv(i,3) .ne. 0)) then

if (output .eq. 'F') then

write (1, *) ' Pivot Point for pc at ', i

else

print *,' Pivot Point for pc at ', i

endif

endif

enddo

endif

if (ichoice(42) .eq. 42) go to 65

if (ichoice(43) .eq. 43) go to 65

if (ichoice(44) .eq. 44) go to 65

50 print *, ' Page 2 of choices'

print *, ' '

print *, '45 Examine starred choices made from page 1 in this '

print *, ' version of program Segment Sieve, then repeat page 2'

print *, '46 Clear Page 1 Choices and Repeat page 1'

print *, '47 Keep Page 1 Choices and Repeat page 1'

print *, ' '

print *, '*19 The pc table.',

c a pc is detected by a Pivot Point being a member of either

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c (is points)

1 ' (is points)'

print *, '*20 Pivot Point table for pc.',

c a Pivot Point table for pc's is detected by being a

c member of either

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

1 ' (Vanitas Vector Points)'

print *, '*21 mc table.'

c 21. mc table

cg mc detected by Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((member of CA2) * 6) - 1 = mc

c (is points)

print *, ' each point generated by ((CA2 member) * 6) - 1',

1 ' (is points)'

print *, '*22 Pivot Point table for mc.',

c 22. Pivot Point table for mc.

cg mc detected by Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

1 ' (Vanitas Vector Points)'

print *, '*23 The pc table generated by ',

cg pc detected by Pivot Point being a member of

c 6m(1)m(2) + m(1) + m(2) = CA1

c ((member of CA1) * 6) + 1 = pc

c (is points)

1 '36m(1)m(2) + 6m(1) + 6m(2) + 1 = (CA1 * 6) + 1'

print *, ' (is points)'

print *, '*24 ((n * 6) + 1) Voids in pc table generated by ',

c *24 ((n * 6) + 1) Voids in pc table generated by (CA1 * 6) + 1

cg (is points)

1 '(CA1 * 6) + 1'

print *, ' (is points)'

print *, '*25 The Pivot Point table generated by'

c The Pivot Point table generated by CA1

cg (Vanitas Vector Points)

print *, ' 6m(1)m(2) + m(1) + m(2) = CA1',

1 ' (Vanitas Vector Points)'

print *, '*26 Voids in the Pivot Point table generated by CA1'

c 26. Voids in the Pivot Point table generated by CA1

cg = 6m(1)m(2) + m(1) + m(2)

c (Vanitas Vector Points)

print *, ' 6m(1)m(2) + m(1) + m(2) = CA1',

1 ' (Vanitas Vector Points)'

print *, ' '

print *, '*27 The mc table generated by'

c The mc table detected by Pivot Point generated by CA2

c ((member of CA2) * 6) - 1 = mc

c (is points)

print *, ' 36m(1)m(2) + 6m(1) - 6m(2) - 1 '

print *, ' ((member of CA2) * 6) - 1 = mc'

print *, ' (is points)'

print *, '*28 Voids (mp pp) in mc table generated by'

c 28. voids(mp) in mc table generated by 36m(1)m(2) +6m(1) -6m(2) -1

cg ((void of CA2) * 6) - 1 = mp

c (is points)

print *, ' 36m(1)m(2) + 6m(1) - 6m(2) - 1 '

print *, ' ((void of CA2) * 6) - 1 = mp'

print *, ' (is points)'

print *, '*29 The Pivot Point table for mc can be generated by ',

c *29 The Pivot Point table for mc's can be generated by

cg CA2 = 6m(1)m(2) + m(1) - m(2)

c (6 *(member of CA2)) - 1 = mc

c (Vanitas Vector Points)

c Note: is identical to the

c Pivot Point table generated by

c 6m(1)m(2) - m(1) + m(2)

1 ' CA2 = 6m(1)m(2) + m(1) - m(2)'

print *, ' (6 *(member of CA2)) - 1 = mc',

1 ' (Vanitas Vector Points)'

print *, '*30 Voids in the Pivot Point table generated by'

c *30 Voids in the Pivot Point table generated by CA2 =

cg 6m(1)m(2) + m(1) - m(2)

c note: these voids are Pivot Points for mp

c (Vanitas Vector Points)

print *, ' 6m(1)m(2) + m(1) - m(2) = CA2',

1 ' (Vanitas Vector Points)'

print *, ' note: these voids are Pivot Points for mp'

print *, '*31 The mc table generated by '

c *31 The mc table generated by 36m(1)m(2) - 6m(1) + 6m(2) - 1

cg is identical to 27 output since m(1) and m(2) are interchangeable.

c (is points)

print *, ' 36m(1)m(2) - 6m(1) + 6m(2) - 1',

1 'is identical to 27 output. (is points)'

print *, ' '

print *, '48 All starred choices on page 2'

print *, ' '

print *, 'Type line number(s) of outputs desired from this page ',

1 ' , separated by commas.'

print *, ' (use only 1 line) (do not type * or spaces(blanks)'

read (5, '(a)') choices

oldpos = 0 ! indicate that no commas have been in string found so far

if (choices(1:1) .eq. ' ') go to 60 ! blank line

do i = 1, 80

if ((choices(i:i) .eq. ',') .or. (choices(i:i) .eq. ' ')) then

c if a comma is found, process here

c if a blank is found, we assume last input

if ((i - oldpos) .eq. 3) then

isubscript = ((ichar(choices((oldpos+1):(i-2)))) -48)*10

isubscript = isubscript +

1 (ichar(choices((oldpos+2):(i-1)))) - 48

ichoice (isubscript) = isubscript

else

ichoice((ichar(choices((oldpos+1):(i-1)))) - 48) ! turn on option

1 = (ichar(choices((oldpos+1):(i-1)))) - 48

endif

oldpos = i ! mark position of this comma

endif

if (choices(i:i) .eq. ' ') go to 60 ! if we have blank, exit parse

enddo

60 oldpos = 0 ! clear for next string test

c 45 Examine starred choices made from page 1 in this version of program

c Segment Sieve, then repeat page 2

if (ichoice(45) .eq. 45) then

print *, 'Starred choices you made from page 1 were:'

if (ichoice(1) .eq. 1)

1 print *, ' 1 The Twin prime table. (is points)'

cg Note: detected by common voids in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) + m(1) - m(2) = CA2 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: ((common void) * 6) + 1 = pp and

c ((common void) * 6) - 1 = mp

c (is points)

if (ichoice(2) .eq. 2) then

cg 2. The Twin prime Pivot Point table.

c Note: The Married Plus and Married Minus

c Pivot Point tables are identical to

c (The Twin prime Pivot Point table).

c Note: detected by common voids in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) + m(1) - m(2) = CA2 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c (Vanitas Vector Points)

print *, ' 2 The Twin prime Pivot Point table'

print *, 'Note: The Married Plus and Married Minus Pivot'

print *, ' Point tables are identical to '

print *, ' (The Twin prime Pivot Point table).'

print *, ' (Vanitas Vector Points)'

endif

if (ichoice(3) .eq. 3)

cg pp that are part of a twin prime pair

c Note: Twin primes are detected by common voids in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) + m(1) - m(2) = CA2 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: ((common void) * 6) + 1 is a married plus prime. (is points)

1 print *, ' 3 The Married Plus prime table. (is points)'

if (ichoice(4) .eq. 4)

cg mp that are part of a twin prime pair

c Note: Twin primes are detected by common voids in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) + m(1) - m(2) = CA2 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: ((common void) * 6) - 1 is a married minus prime. (is points)

1 print *, ' 4 The Married Minus prime table. (is points)'

if (ichoice(5) .eq. 5)

cg (includes the primes in (pp, mc) or (pc, mp) or (pp, mp))

cg (includes the primes in (pp, mc) or (pc, mp) or (pp, mp))

c Note: The pp are detected by common voids

c in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((common void of CA1 and CA2) * 6) + 1) is a pp.

c Note: The mp are detected by voids in the output from

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((void of CA2) * 6) - 1) is a mp.

c (is points)

1 print *, ' 5 The prime table. (is points)'

if (ichoice(6) .eq. 6)

cg includes Pivot Points for (pp, mc) or (pc, mp) or (pp, mp)

c Note: The Pivot Points for pp are detected by common voids

c in the output from

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: The Pivot Points for mp are detected by voids in output of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

1 print *, ' 6 The prime Pivot Point table. ',

2 '(Vanitas Vector Points)'

if (ichoice(7) .eq. 7)

cg Note: detected by common voids in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((common void of CA1 and CA3) * 6) + 1 = pp

c (is points)

1 print *, ' 7 The Plus prime table. (is points)'

if (ichoice(8) .eq. 8)

cg Note: detected by common voids in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c (Vanitas Vector Points)

1 print *, ' 8 The Plus prime Pivot Point table. ',

2 '(Vanitas Vector Points)'

cg Note: detected by voids in

c 6m(1)m(2) + m(1) - m(2) = CA2

c (void) * 6) - 1 = mp (is points)

if (ichoice(9) .eq. 9)

cg Note: detected by voids in

c 6m(1)m(2) + m(1) - m(2) = CA2

c (void in CA2) * 6) - 1 = mp

c (is points)

1 print *, ' 9 The Minus prime table. (is points)'

if (ichoice(10) .eq. 10)

cg Note: detected by voids in

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

1 print *, '10 The Minus prime Pivot Point table. ',

2 '(Vanitas Vector Points)'

if (ichoice(11) .eq. 11)

cg (the primes in (pp, mc) and (pc, mp) pairs)

c (pp,mc) detected by Pivot Point being a common void in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c and Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c NOTE:((common void of CA1 and CA3) * 6) + 1 = pp

c ((member of CA2) * 6) - 1 = mc

c and

c (pc,mp) detected by Pivot Point being a member of either or both

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((member of either (or both) CA1 or CA3) * 6) + 1 = pc

c and Pivot Point being a void of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((void of CA2) * 6) - 1 = mp

c (is points)

1 print *, '11 The Lonesome prime table. (is points)'

if (ichoice(12) .eq. 12)

cg Pivot Points for (pp, mc) or (pc, mp) pairs

c detected by common voids in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c and Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c and

c detected by Pivot Point being a member of either (or both)

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c and being a void of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

1 print *, '12 The Lonesome prime Pivot Point table. ',

2 '(Vanitas Vector Points)'

if (ichoice(13) .eq. 13)

cg identifies primes from (pp,mc) pairs

c (pp,mc) detected by Pivot Point being a common void in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c and Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((common void of CA1 and CA3) * 6) + 1 = pp

c ((member of CA2) * 6) - 1 = mc

c (is points)

1 print *, '13 The Lonesome Plus prime table. (is points)'

if (ichoice(14) .eq. 14)

cg detected by Pivot Point being a common void in

c 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c and Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

1 print *, '14 The Lonesome Plus prime Pivot Point table ',

2 '(Vanitas Vector Points)'

if (ichoice(15) .eq. 15)

cg identifies primes from (pc,mp) pairs

c detected by Pivot Point being a member of either (or both)

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((member of either (or both) CA1 or CA3) * 6) + 1 = pc

c and Pivot Point being a void of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((void of CA2) * 6) - 1 = mp

c (is points)

1 print *, '15 The Lonesome Minus prime table. (is points)'

if (ichoice(16) .eq. 16)

cg detected by Pivot Point being a member of either

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c and being a void of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

1 print *, '16 The Lonesome Minus prime Pivot Point table.',

2 '(Vanitas Vector Points)'

if (ichoice(17) .eq. 17)

c *17 Composite table (all pc and all mc).

cg pc detected by Pivot Point being a member of either (or both)

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c ((member of either (or both) CA1 or CA3) * 6) + 1 = pc

c mc detected by Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((member of CA2) * 6) - 1 = mc

c (is points)

1 print *, '17 The Composite table (all pc and all mc).'

if (ichoice(18) .eq. 18) then

c *18 Pivot Point table for all composites (pc's and mc's).

cg Pivot Point for pc detected by being a member of either (or both)

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3

c Pivot Point for mc detected by being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

print *, '18 Pivot Point table for all composites (pc ',

1 'and mc) '

print *, ' (Vanitas Vector Points)'

endif

if (ichoice(19) .eq. 19)

1 print *, '19 The pc table.'

cg pc detected by Pivot Point being a member of either

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3 (or both)

c ((member of either (or both) CA1 or CA3) * 6) + 1 = pc

c (is points)

if (ichoice(20) .eq. 20) then

cg pc detected by Pivot Point being a member of either

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3 (or both)

c (Vanitas Vector Points)

print *, ' Note: This is the combination of points ',

1 'generated'

print *, ' by Chenault Algorithyms I and III.'

print *, ' (Vanitas Vector Points)'

endif

if (ichoice(21) .eq. 21) then

c 21 mc table

cg mc detected by Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((member of CA2) * 6) - 1 = mc

c (is points)

print *, '21 The mc table. (is points)'

print *, ' ((each point generated by CA2) * 6) + 1 ',

1 ' = mc'

endif

if (ichoice(22) .eq. 22) then

c 22. Pivot Point table for mc.

cg mc detected by Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

print *, '22 Pivot Point table for mc. '

print *, ' mc detected by Pivot Point being a member'

print *, ' of 6m(1)m(2) + m(1) - m(2) = CA2'

print *, ' (Vanitas Vector Points)'

endif

if (ichoice(23) .eq. 23) then

cg those pc detected by Pivot Point being a member of

c 6m(1)m(2) + m(1) + m(2) = CA1

c ((member of CA1) * 6) + 1 = pc

c (is points)

print *, '((member of CA1) * 6) + 1 = pc'

print *, ' (is points)'

endif

if (ichoice(24) .eq. 24) then

c ((n * 6) + 1) Voids in pc table generated by (CA1 * 6) + 1

cg (is points)

print *, '*24 ((n * 6) + 1) Voids in pc table generated by',

1 ' (CA1 * 6) + 1'

print *, ' (is points)'

endif

if (ichoice(25) .eq. 25) then

c The Pivot Point table generated by CA1

cg (Vanitas Vector Points)

print *, '25 The Pivot Point table generated by CA1'

print *, ' (Vanitas Vector Points)'

endif

if (ichoice(26) .eq. 26) then

c 26. Voids in the Pivot Point table generated by CA1

cg = Chenault Algorithym I = 6m(1)m(2) + m(1) + m(2)

c (Vanitas Vector Points)

print *, '26 Voids in the Pivot Point ',

1 'table generated by CA1 = '

print *, '6m(1)m(2) + m(1) + m(2) '

print *, ' (Vanitas Vector Points)'

endif

if (ichoice(27) .eq. 27) then

c The mc table is detected by a Pivot Point being generated by

c CA2.

c ((member of CA2) * 6) - 1 = mc

c (is points)

endif

if (ichoice(28) .eq. 28) then

c 28. voids(mp) in mc table generated by 36m(1)m(2) +6m(1) -6m(2) -1

cg ((void of CA2) * 6) - 1 = mp

c (is points)

print *, '28 Voids(mp) in mc table generated by'

print *, ' 36m(1)m(2) + 6m(1) - 6m(2) - 1 ',

1 '= (CA2 * 6) - 1 (is points)'

endif

if (ichoice(29) .eq. 29) then

c 29. The Pivot Point table for mc's can be generated by

cg CA2 = 6m(1)m(2) + m(1) - m(2)

c (6 * (member of CA2)) - 1 = mc

c (Vanitas Vector Points)

c Note: is identical to the

c Pivot Point table generated by

c 6m(1)m(2) - m(1) + m(2)

print *, '29 The Pivot Point table for mc is ',

1 'identical to the'

print *, 'Pivot Point table generated by '

print *, '6m(1)m(2) + m(1) - m(2) = CA2'

print *, ' (Vanitas Vector Points)'

endif

if (ichoice(30) .eq. 30) then

c 30 Voids in the Pivot Point table generated by CA2 =

cg 6m(1)m(2) + m(1) - m(2)

c note: these voids are Pivot Points for mp

c (Vanitas Vector Points)

print *, '30 Voids in the Pivot Point table generated by'

print *, ' 6m(1)m(2) + m(1) - m(2) = CA2 '

print *, ' (Vanitas Vector Points)'

endif

if (ichoice(31) .eq. 31) then

c 31. The mc table generated by 36m(1)m(2) - 6m(1) + 6m(2) - 1

cg is identical to 27 output since m(1) and m(2) are interchangeable.

c (is points)

print *, '31 The mc composite table generated by'

print *, ' 36m(1)m(2) - 6m(1) + 6m(2) - 1 ',

1 'is identical to 27 output. (is points)'

endif

if (ichoice(32) .eq. 32) then

c 32. ((n * 6) -1 ) Voids(these are mp) in the mc table generated by

cg 36m(1)m(2) - 6m(1) + 6m(2) -1

c is identical to 28 output.

c (is points)

print *, '32 Voids(mp) in mc table generated by'

print *, ' 36m(1)m(2) - 6m(1) + 6m(2) - 1 ',

1 'is identical to 28 output. (is points)'

endif

if (ichoice(33) .eq. 33) then

c 33. The Pivot Point table generated by

cg 6m(1)m(2) - m(1) + m(2) = CA2

c (Vanita's Vector Points)

c Note: is identical to the

c Pivot Point table generated by

c 6m(1)m(2) + m(1) - m(2) = CA2

c (is identical to 29 output)

print *, '33 The Pivot Point table ',

1 'generated by'

print *, ' 6m(1)m(2) - m(1) + m(2)'

print *, ' is identical to 29 output.'

print *, ' (Vanitas Vector Points)'

endif

if (ichoice(34) .eq. 34) then

c 34. Voids in the Pivot Point table generated by

cg 6m(1)m(2) - m(1) + m(2)

c (identical to 30 output)

c (Vanita's Vector Points)

print *, '34 Voids in the Pivot Point ',

1 'table generated by'

print *, ' 6m(1)m(2) - m(1) + m(2) '

print *, ' is identical to 30 output.',

1 ' (Vanitas Vector Points)'

endif

if (ichoice(35) .eq. 35) then

c 35. pc table generated by

cg 36m(1)m(2) - 6m(1) - 6m(2) + 1 = (CA3 * 6) + 1

c (is points)

print *, '35 The pc table generated by '

print *, '36m(1)m(2) - 6m(1) - 6m(2) + 1 '

print *, ' = (6 * (member of CA3)) + 1 ',

1 ' (is points)'

endif

if (ichoice(36) .eq. 36) then

c 36. ((n*6)+1) voids (possible pp) in pc table generated by

cg 36m(1)m(2) - 6m(1) - 6m(2) + 1

c (is points)

print *, '36 ((n*6)+1) voids (possible pp) in pc table '

1 'generated by '

print *, '36m(1)m(2) - 6m(1) - 6m(2) + 1 (CA3) ',

1 '(is points)'

endif

if (ichoice(37) .eq. 37) then

c 37. Pivot Point table generated by

cg 6m(1)m(2) - m(1) - m(2) = CA3

c (Vanitas Vector Points)

print *, '37 Pivot Point table generated by '

print *, ' 6m(1)m(2) - m(1) - m(2) = CA3 '

print *, ' (Vanitas Vector Points)'

endif

if (ichoice(38) .eq. 38) then

c 38. Voids in the Pivot Point table generated by

cg 6m(1)m(2) - m(1) - m(2) = CA3

c (Vanitas Vector Points)

print *, '38 Voids in the Pivot Point table generated by '

print *, ' 6m(1)m(2) - m(1) - m(2) = CA3 '

print *, ' (Vanitas Vector Points)'

endif

if (ichoice(39) .eq. 39) then

print *, '39 The plus compromised Pivot Point table ',

1 'generated by combining the output from'

print *, '6m(1)m(2) + m(1) + m(2) = CA1 and'

print *, '6m(1)m(2) - m(1) - m(2) = CA3'

print *, ' (Vanitas Vector Points)'

endif

if (ichoice(40) .eq. 40) then

print *, '40 Voids(pp) in the Composite Pivot Point table',

1 ' generated by combining the output from'

print *, '6m(1)m(2) + m(1) + m(2) = CA1 and'

print *, '6m(1)m(2) - m(1) - m(2) = CA3'

print *, ' (Vanitas Vector Points)'

endif

ichoice(45) = 0 ! reset examine option

print *, 'Press return when ready to continue.'

pause

go to 50 ! top of page 2

endif

c 46 Clear Page 1 Choices and Repeat page 1

if (ichoice(46) .eq. 46) then

do i = 1, 18

ichoice(i) = 0

enddo

ichoice(46) = 0 ! reset clear option

go to 30 ! top of page 1

endif

c 47 Keep Page 1 Choices and Repeat page 1

if (ichoice(47) .eq. 47) then

ichoice(47) = 0

go to 30 ! top of page 1

endif

c 48 test for Chose all starred choices on this page

if (ichoice(48) .eq. 48) then

do i = 19, 31

ichoice(i) = i

enddo

ichoice(48) = 0

endif

c *19 pc table

cg pc detected by Pivot Point being a member of either

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3 (or both)

c ((member of either (or both) CA1 or CA3) * 6) + 1 = pc

c (is points)

65 if (ichoice(19) .eq. 19) then

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) ' 19. pc table. (is points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, ' 19. pc table. (is points)'

endif

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

do i = lowervv, uppervv ! find primes

if ((vv(i,1) .ne. 0) .or. (vv(i,3) .ne. 0)) then

if (output .eq. 'F') then

write (1, *) ' pc at ', (6 * i) + 1

else

print *, ' pc at ', (6 * i)+ 1

endif

endif

enddo

endif

c *20 Pivot Point table for pcs.

cg pc detected by Pivot Point being a member of either

c 6m(1)m(2) + m(1) + m(2) = CA1 or

c 6m(1)m(2) - m(1) - m(2) = CA3 (or both)

c (Vanitas Vector Points)

if (ichoice(20) .eq. 20) then

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) ' 20. Pivot Point table for pc(s).',

1 ' (Vanitas Vector Points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, ' 20. Pivot Point table for pc(s).',

1 ' (Vanitas Vector Points)'

endif

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

do i = lowervv, uppervv ! find primes

if ((vv(i,1) .ne. 0) .or. (vv(i,3) .ne. 0)) then

if (output .eq. 'F') then

write (1, *) ' Plus Compromised Pivot Point at ', i

else

print *, ' Plus Compromised Pivot Point at ', i

endif

endif

enddo

endif

c *21 mc table

cg mc detected by Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c ((member of CA2) * 6) - 1 = mc

c (is points)

if (ichoice(21) .eq. 21) then

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) ' 21. The Minus composite ((n*6) - 1) table.',

1 ' (is points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, ' 21. The Minus composite ((n*6) - 1) table.',

1 ' (is points)'

endif

do i = lowervv, uppervv

if (vv(i,2) .ne. 0) then

if (output .eq. 'F') then

write (1, *) 'mc at ', (6*i)-1, ' (is points)'

else

print *, 'mc at ', (6*i)-1, ' (is points)'

endif

endif

enddo

endif

c *22 Pivot Point table for mc.

cg mc detected by Pivot Point being a member of

c 6m(1)m(2) + m(1) - m(2) = CA2

c (Vanitas Vector Points)

if (ichoice(22) .eq. 22) then

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) ' 22. Pivot Point table for mc(s).',

1 ' (Vanitas Vector Points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, ' 22. Pivot Point table for mc(s).',

1 ' (Vanitas Vector Points)'

endif

do i = lowervv, uppervv

if (vv(i,2) .ne. 0) then

if (output .eq. 'F') then

write (1, *) 'Pivot Point for mc at', i

else

print *,'Pivot Point for mc at', i

endif

endif

enddo

endif

c *23 The pc table generated by CA1 = 36m(1)m(2) + 6m(1) + 6m(2) + 1

cg those pc detected by Pivot Point being a member of

c 6m(1)m(2) + m(1) + m(2) = CA1

c ((member of CA1) * 6) + 1 = pc

c (is points)

if (ichoice(23) .eq. 23) then

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) ' 23. The pc table generated by ',

1 '36m(1)m(2) + 6m(1) + 6m(2) + 1 '

write (1, *) ' (is points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, ' 23. The pc table generated by ',

1 '36m(1)m(2) + 6m(1) + 6m(2) + 1 '

print *, ' (is points)'

endif

do i = lowervv, uppervv

if (vv(i,1) .ne. 0) then

if (output .eq. 'F') then

write (1, *) '(6 * ', i, ') + 1 pc at ', (6 * i) + 1

else

print *, '(6 * ', i, ') + 1 pc at ', (6 * i) + 1

endif

endif

enddo

endif

if (ichoice(24) .eq. 24) then

c *24 ((n * 6) + 1) Voids in pc table generated by (CA1 * 6) + 1

cg (is points)

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) '24. (n * 6) + 1 voids in the pc table ',

1 ' generated by 36m(1)m(2) + 6m(1) + 6m(2) + 1'

write (1, *) ' (is points)'

write (1, *) ' note: If a void from 24 is also',

1 ' a void of'

write (1, *) ' 36m(1)m(2) - 6m(1) - 6m(2) + 1',

1 ', we have a plus prime.'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, '24. (n * 6) + 1 voids in the pc table ',

1 ' generated by 36m(1)m(2) + 6m(1) + 6m(2) + 1'

print *, ' (is points)'

print *, ' note: If a void from 24 is also',

1 ' a void of'

print *, ' 36m(1)m(2) - 6m(1) - 6m(2) + 1,',

1 ' we have a plus prime.'

endif

do i = lowervv, uppervv

if (vv(i,1) .eq. 0) then

if (output .eq. 'F') then

write (1, *) '(6 * ', i, ') + 1 possible prime ',

1 'at ', (6 * i) + 1

else

print *, '(6 * ', i, ') + 1 possible prime at ',

1 (6 * i) + 1

endif

endif

enddo

endif

c *25 The Pivot Point table generated by CA1

cg (Vanitas Vector Points)

if (ichoice(25) .eq. 25) then

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) '25. Pivot Point table generated by ',

1 'CA1 = 6m(1)m(2) + m(1) + m(2)'

write (1, *)' (Vanitas Vector Points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, '25. Pivot Point table generated by ',

1 'CA1 = 6m(1)m(2) + m(1) + m(2)'

print *, ' (Vanitas Vector Points)'

endif

do i = lowervv, uppervv

if (vv(i,1) .ne. 0) then

if (output .eq. 'F') then

write (1, *) 'CA1 Pivot Point at ', i

else

print *, 'CA1 Pivot Point at ', i

endif

endif

enddo

endif

c *26 Voids in the Pivot Point table generated by CA1 = Chenault Algorithym I

cg = 6m(1)m(2) + m(1) + m(2)

c (Vanitas Vector Points)

if (ichoice(26) .eq. 26) then

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) '26. Voids in the Pivot Point table ',

1 'generated by CA1 = 6m(1)m(2) + m(1) + m(2)'

write (1, *)' (Vanitas Vector Points)'

write (1, *) ' note: If the voids from CA1 are also',

1 ' voids of CA3 = '

write (1, *) ' 6m(1)m(2) - m(1) - m(2), we have a ',

1 'Pivot Point for Plus primes.'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, '26. Voids in the Pivot Point table ',

1 'generated by CA1 = 6m(1)m(2) + m(1) + m(2)'

print *, ' (Vanitas Vector Points)'

print *, ' note: If the voids from CA1 are also',

1 ' voids of CA3 = '

print *, ' 6m(1)m(2) - m(1) - m(2), we have a',

1 'Pivot Point for Plus primes.'

endif

do i = lowervv, uppervv

if (vv(i,1) .eq. 0) then

if (output .eq. 'F') then

write (1, *) 'Chenault Algorithm I (CA1) void at ', i

else

print *, 'Chenault Algorithm I (CA1) void at ', i

endif

endif

enddo

endif

if (ichoice(27) .eq. 27) then

c 27 The mc table is detected by a Pivot Point being generated by CA2

cg ((member of CA2) * 6) - 1 = mc

c (is points)

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) '27. The mc table generated by (6 * CA2) -',

1 ' 1 = 36m(1)m(2) + 6m(1) - 6m(2) -1'

write (1, *)' Note: All mc are generated. '

write (1, *)' (is points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, '27. The mc table generated by (6 * CA2) -',

1 ' 1 = 36m(1)m(2) + 6m(1) - 6m(2) -1'

print *, ' Note: All mc are generated. '

print *, ' (is points)'

endif

do i = lowervv, uppervv

if (vv(i,2) .ne. 0) then

if (output .eq. 'F') then

write (1, *) '(6 * ', i, ') - 1 mc at ', (6 * i) - 1

else

print *, '(6 * ', i, ') - 1 mc at ', (6 * i) - 1

endif

endif

enddo

endif

if (ichoice(28) .eq. 28) then

c 28. voids(mp) in mc table generated by 36m(1)m(2) +6m(1) -6m(2) -1

cg ((void of CA2) * 6) - 1 = mp

c (is points)

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) '28. ((n * 6) -1) voids in mc table generated',

1 ' by 36m(1)m(2) +6m(1) -6m(2) -1'

write (1, *) ' = (CA2 * 6) - 1 (is points)'

write (1, *) ' note: identifies all minus primes.'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, '28. ((n * 6) -1) voids in mc table generated',

1 ' by 36m(1)m(2) +6m(1) -6m(2) -1'

print *, ' = (CA2 * 6) - 1 (is points)'

print *, ' note: identifies all minus primes.'

endif

do i = lowervv, uppervv

if (vv(i,2) .eq. 0) then

if (output .eq. 'F') then

write (1, *) '(6 * ', i, ') - 1 minus prime(mp) at ',

1 (6 * i) - 1

else

print *, '(6 * ', i, ') - 1 minus prime(mp) at ',

1 (6 * i) - 1

endif

endif

enddo

endif

c *29 The Pivot Point table for mc's can be generated by

cg CA2 = 6m(1)m(2) + m(1) - m(2)

c (6 *(member of CA2)) - 1 = mc

c (Vanitas Vector Points)

c Note: is identical to the

c Pivot Point table generated by

c 6m(1)m(2) - m(1) + m(2)

if (ichoice(29) .eq. 29) then

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *)' 29. Pivot Point table for mcs ',

1 'generated by'

write (1, *) ' 6m(1)m(2) + m(1) - m(2) = CA2'

1 ' (Vanitas Vector Points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, ' 29. Pivot Point table for mcs ',

1 'generated by'

print *, ' 6m(1)m(2) + m(1) - m(2) = CA2'

1 ' (Vanitas Vector Points)'

endif

do i = lowervv, uppervv

if (vv(i,2) .ne. 0) then

print *, 'Pivot Point for mc at ', i

if (output .eq. 'F') then

write (1, *) 'Pivot Point for mc at ', i

else

print *, 'Pivot Point for mc at ', i

endif

endif

enddo

endif

c *30 Voids in the Pivot Point table generated by CA2 =

cg 6m(1)m(2) + m(1) - m(2)

c note: these voids are Pivot Points for mp

c (Vanitas Vector Points)

if (ichoice(30) .eq. 30) then

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *)'30. voids(pivot points for mp) in the Pivot ',

1 'Point table generated by'

write (1, *) ' 6m(1)m(2) + m(1) - m(2) = CA2'

1 ' (Vanitas Vector Points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, '30. voids(pivot points for mp) in the Pivot ',

1 'Point table generated by'

print *, ' 6m(1)m(2) + m(1) - m(2) = CA2'

1 ' (Vanitas Vector Points)'

endif

do i = lowervv, uppervv

if (vv(i,2) .eq. 0) then

if (output .eq. 'F') then

write (1, *) 'Pivot Point of minus prime at ', i

else

print *, 'Pivot Point of minus prime at ', i

endif

endif

enddo

endif

c *31 The mc table generated by 36m(1)m(2) - 6m(1) + 6m(2) - 1

cg is identical to 27 output since m(1) and m(2) are interchangeable.

c (is points)

if (ichoice(31) .eq. 31) then

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *)' 31. mc table generated by ',

1 ' 36m(1)m(2) - 6m(1) + 6m(2) - 1 (is points)'

write (1, *) ' Note: is identical to *27,',

1 ' ((CA2 * 6) - 1) output'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, ' 31. mc table generated by ',

1 ' 36m(1)m(2) - 6m(1) + 6m(2) - 1 (is points)'

print *, ' Note: is identical to *27,',

1 ' ((CA2 * 6) - 1) output'

endif

do i = lowervv, uppervv

if (vv(i,2) .ne. 0) then

if (output .eq. 'F') then

write (1, *) 'mc generated by '

1 ' 36m(1)m(2) - 6m(1) + 6m(2) - 1 '

2 'at ', (6 * i) - 1

else

print *, 'mc generated by '

1 ' 36m(1)m(2) - 6m(1) + 6m(2) - 1 '

2 'at ', (6 * i) - 1

endif

endif

enddo

endif

if (ichoice(42) .eq. 42) go to 95

if (ichoice(43) .eq. 43) go to 95

if (ichoice(44) .eq. 44) go to 95

70 print *, ' Page 3 of choices'

print *, '49 Examine starred choices made from pages 1 and 2 in '

print *, ' this version of program Segment Sieve'

print *, '50 Clear Choices from Pages 1 and 2, Repeat both pages'

print *, '51 Keep Choices from Pages 1 and 2, Repeat both pages'

print *, ' '

print *, '*32 Voids(mp) in mc table generated by '

c 32. ((n * 6) -1 ) Voids(these are mp) in the mc table generated by

cg 36m(1)m(2) - 6m(1) + 6m(2) -1

c is identical to 28 output.

c (is points)

print *, ' 36m(1)m(2) - 6m(1) + 6m(2) - 1',

1 'is identical to 28 output. (is points)'

print *, '*33 The Pivot Point table generated ',

c 33. The Pivot Point table generated by

cg 6m(1)m(2) - m(1) + m(2) = CA2

c (Vanita's Vector Points)

c Note: is identical to the

c Pivot Point table generated by

c 6m(1)m(2) + m(1) - m(2) = CA2

c (is identical to 29 output)

1 'by 6m(1)m(2) - m(1) + m(2)'

print *, ' is identical to 29 output. (Vanitas Vector Points)'

print *, '*34 Voids in the Pivot Point table ',

c 34. Voids in the Pivot Point table generated by

cg 6m(1)m(2) - m(1) + m(2)

c (identical to 30 output)

c (Vanita's Vector Points)

1 'generated by'

print *, ' 6m(1)m(2) - m(1) + m(2)'

print *, ' (Is identical to 30 output.) (Vanitas Vector Points)'

print *, '*35 The plus composite(pc) table generated by'

print *, ' 36m(1)m(2) - 6m(1) - 6m(2) + 1 = (CA3 * 6) + 1',

1 ' (is points)'

print *, '*36 ((n*6)+1) voids (possible pp) in pc table generated' by'

c 36. ((n*6)+1) voids (possible pp) in pc table generated by

cg 36m(1)m(2) - 6m(1) - 6m(2) + 1

c (is points)

print *, ' by 36m(1)m(2) - 6m(1) - 6m(2) + 1 = (CA3 * 6) + 1',

1 ' (is points)'

print *, '*37 Pivot Point table generated by'

c 37. Pivot Point table generated by

cg 6m(1)m(2) - m(1) - m(2) = CA3

c (Vanitas Vector Points)

print *, ' 6m(1)m(2) - m(1) - m(2) = CA3',

1 ' (Vanitas Vector Points)'

print *, '*38 Voids in the Pivot Point table for pc generated ',

1 'by CA3 = '

print *, ' 6m(1)m(2) - m(1) - m(2) = Chenault Algorithym III',

1 ' (Vanitas Vector Points)'

print *, '*39 The Pivot Point table for pc composites generated '

print *, ' by combining the output from'

print *, ' 6m(1)m(2) + m(1) + m(2) = Chenault ',

1 'Algorithym I'

print *, ' and 6m(1)m(2) - m(1) - m(2) = Chenault ',

1 'Algorithym III '

print *, ' (Vanitas Vector Points)'

print *, '*40 Voids(pp Pivot Points) in the Pivot Point table ',

1 'generated by'

print *, ' combining the output from'

print *, ' 6m(1)m(2) + m(1) + m(2) = Chenault ',

1 'Algorithym I'

print *, ' and 6m(1)m(2) - m(1) - m(2) = Chenault ',

1 'Algorithym III '

print *, ' (Vanitas Vector Points)'

print *, ' '

print *, '52 All starred choices on page 3'

print *, '53 Repeat all pages, retaining prevous starred choices'

print *, '54 Erase all user input and Repeat all pages'

print *, '55 Examine starred choices made from pages 1 and 2 in '

print *, ' this version of program Segment Sieve, then repeat ',

1 'page 3'

print *, '56 Review all starred choices made from pages 1, 2, ',

1 ' and 3, Retain all starred choices, then',

2 ' Repeat all pages'

print *, ' '

print *, 'Type line number(s) of outputs desired from this page ',

1 ' , separated by commas.'

print *, ' (use only 1 line) (do not type * or spaces(blanks)'

read (5, '(a)') choices

c if (choices(1:1) .ne. ' ') then

c print *, 'choices = ', choices

c endif

oldpos = 0 ! indicate that no commas have been in string found so far

if (choices(1:1) .eq. ' ') go to 80 ! blank line

do i = 1, 80

if ((choices(i:i) .eq. ',') .or. (choices(i:i) .eq. ' ')) then

c if a comma is found, process here

c if a blank is found, we assume last input

if ((i - oldpos) .eq. 3) then

isubscript = ((ichar(choices((oldpos+1):(i-2)))) -48)*10

isubscript = isubscript +

1 (ichar(choices((oldpos+2):(i-1)))) - 48

ichoice (isubscript) = isubscript

else

ichoice((ichar(choices((oldpos+1):(i-1)))) - 48) ! turn on option

1 = (ichar(choices((oldpos+1):(i-1)))) - 48

endif

oldpos = i ! mark position of this comma

endif

if (choices(i:i) .eq. ' ') go to 80 ! if we have blank, exit parse

enddo

80 oldpos = 0 ! clear for next string test

c 52 test for All starred choices on this page

if (ichoice(52) .eq. 52) then

do i = 32, 40

ichoice(i) = i

enddo

ichoice(52) = 0 ! clear for next test

endif

c 49 Examine starred choices made from pages 1 and 2 in

c this version of program Segment Sieve

if (ichoice(49) .eq. 49) then

do i = 1, 31

if (ichoice(i) .eq. i) print *, 'ichoice(',i,') = ', ichoice(i)

enddo

ichoice(49) = 0 ! reset examine option

print *, 'Press return when ready to continue.'

pause

go to 70 ! top of page 3

endif

c 50 test for Clear Choices from Pages 1 and 2, Repeat both pages

if (ichoice(50) .eq. 50) then

do i = 1, 31

ichoice(i) = 0

enddo

ichoice(50) = 0

go to 30 ! top of page 1

endif

c 51 test for Keep Choices from Pages 1 and 2, Repeat both pages

if (ichoice(51) .eq. 51) then

ichoice(51) = 0

go to 30 ! top of page 1

endif

90 continue

c *32 ((n * 6) -1) voids(these are mp) in mc table generated by

cg 36m(1)m(2) - 6m(1) + 6m(2) -1

c is identical to 28 output.

c (is points)

95 if (ichoice(32) .eq. 32) then

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) '32. ((n*6)-1) voids in mc table generated ',

1 'by 36m(1)m(2) - 6m(1) + 6m(2) - 1 '

write (1, *) ' (is points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, '32. ((n*6)-1) voids in mc table generated ',

1 'by 36m(1)m(2) - 6m(1) + 6m(2) - 1 '

print *, ' (is points)'

endif

do i = lowervv, uppervv

if (vv(i,2) .eq. 0) then

if (output .eq. 'F') then

write (1, *) '(6 * ', i, ') - 1 Minus prime(mp) at ',

1 (6 * i) - 1

else

print *, '(6 * ', i, ') - 1 Minus prime(mp) at ',

1 (6 * i) - 1

endif

endif

enddo

endif

c 33. The Pivot Point table generated by

cg 6m(1)m(2) - m(1) + m(2) = CA2

c (Vanita's Vector Points)

c Note: is identical to the

c Pivot Point table generated by

c 6m(1)m(2) + m(1) - m(2) = CA2

c (is identical to 29 output)

if (ichoice(33) .eq. 33) then

c do i = lowervv, uppervv

c print *, 'vv(i, 1, 2, 3) = ', 'vv(',i,') = ',

c 1 vv(i,1), vv(i,2), vv(i,3)

c enddo

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *)' 33. Pivot Point table for mcs generated by ',

1 '6m(1)m(2) - m(1) + m(2) '

write (1, *) ' (Vanitas Vector Points)'

write (1, *)' Note:is same as the Pivot Point table ',

1 'generated by'

write (1, *)' 6m(1)m(2) + m(1) - m(2) = CA2'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, ' 33. Pivot Point table for mcs generated by ',

1 '6m(1)m(2) - m(1) + m(2) '

print *, 'Note: is same as the Pivot Point table ',

1 'generated by'

print *, ' 6m(1)m(2) + m(1) - m(2) = CA2'

print *, ' (Vanitas Vector Points)'

endif

do i = lowervv, uppervv

if (vv(i,2) .ne. 0) then

if (output .eq. 'F') then

write (1, *) 'Pivot Point for mc at ', i

else

print *, 'Pivot Point for mc at ', i

endif

endif

enddo

endif

if (ichoice(34) .eq. 34) then

c 34. Voids in the Pivot Point table generated by

cg 6m(1)m(2) - m(1) + m(2)

c (identical to 30 output)

c (Vanita's Vector Points)

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *)'34. Voids in the Pivot Point table generated',

1 ' by 6m(1)m(2) - m(1) + m(2)'

write (1, *) ' (Is identical to 30 output.)',

1 ' (Vanitas Vector Points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, '34. Voids in the Pivot Point table generated',

1 ' by 6m(1)m(2) - m(1) + m(2)'

print *, ' (Is identical to 30 output.)',

1 ' (Vanitas Vector Points)'

endif

do i = lowervv, uppervv

if (vv(i,2) .eq. 0) then

if (output .eq. 'F') then

write (1, *) 'Pivot Point of Minus prime at ', i

else

print *, 'Pivot Point of Minus prime at ', i

endif

endif

enddo

print *, ' '

endif

if (ichoice(35) .eq. 35) then

c 35. pc table generated by

cg 36m(1)m(2) - 6m(1) - 6m(2) + 1 = (CA3 * 6) + 1

c (is points)

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) '35. Plus composite (pc) table generated by ',

1 '36m(1)m(2) - 6m(1) - 6m(2) + 1 '

write (1, *) ' = (CA3 * 6) - 1 (is points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, '35. Plus composite (pc) table generated by ',

1 '36m(1)m(2) - 6m(1) - 6m(2) + 1 '

print *, ' = (CA3 * 6) - 1 (is points)'

endif

do i = lowervv, uppervv

if (vv(i,3) .ne. 0) then

if (output .eq. 'F') then

write (1, *) ' (6 * ', i, ') + 1 pc at ',

1 (6 * i) + 1

else

print *, ' (6 * ', i, ') + 1 pc at ',

1 (6 * i) + 1

endif

endif

enddo

print *, ' '

endif

c *36 ((n*6)+1) voids (possible pp) in pc table generated by

cg 36m(1)m(2) - 6m(1) - 6m(2) + 1

c (is points)

if (ichoice(36) .eq. 36) then

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *) '36. ((n*6)+1) voids in pc table generated ',

1 'by 36m(1)m(2) - 6m(1) - 6m(2) + 1 '

write (1, *) ' = voids in ((CA3 * 6) + 1) (is points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, '36.((n*6)+1) voids in pc table generated ',

1 'by 36m(1)m(2) - 6m(1) - 6m(2) + 1 '

print *, ' = voids in ((CA3 * 6) + 1) (is points)'

endif

do i = lowervv, uppervv

if (vv(i,3) .eq. 0) then

if (output .eq. 'F') then

write (1, *) 'possible Plus prime at ',

1 (6 * i) + 1

else

print *, 'possible Plus prime at ',

1 (6 * i) + 1

endif

endif

enddo

endif

c *37 Pivot Point table generated by

cg 6m(1)m(2) - m(1) - m(2) = CA3

c (Vanitas Vector Points)

if (ichoice(37) .eq. 37) then

if (output .eq. 'F') then ! divide sections of output

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *)'37. Pivot Point table generated by '

write (1, *) ' 6m(1)m(2) - m(1) - m(2) = CA3'

1 ' (Vanitas Vector Points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, '37. Pivot Point table generated by '

print *, ' 6m(1)m(2) - m(1) - m(2) = CA3'

1 ' (Vanitas Vector Points)'

endif

do i = lowervv, uppervv

if (vv(i,3) .ne. 0) then

if (output .eq. 'F') then

write (1, *) 'Pivot Point at ', i,

1 ' generated by CA3'

else

print *, 'Pivot Point at ', i,

1 ' generated by CA3'

endif

endif

enddo

endif

c *38 Voids in the Pivot Point table generated by

cg 6m(1)m(2) - m(1) - m(2) = CA3

c (Vanitas Vector Points)

if (ichoice(38) .eq. 38) then

if (output .eq. 'F') then

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *)'38. Voids in Pivot Point table ',

1 'generated by '

write (1, *) ' 6m(1)m(2) - m(1) - m(2) = CA3',

1 ' (Vanitas Vector Points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, '38. Voids in Pivot Point table ',

1 'generated by '

print *, ' 6m(1)m(2) - m(1) - m(2) = CA3',

1 ' (Vanitas Vector Points)'

endif

do i = lowervv, uppervv

if (vv(i,3) .eq. 0) then

if (output .eq. 'F') then

write (1, *) 'Void in Pivot Point table at ',

1 i, ' generated by CA3'

else

print *, 'Void in Pivot Point table at ',

1 i, ' generated by CA3'

endif

endif

enddo

endif

c *39 Pivot Point table generated by combining the

cg output from 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: ((member of either (or both) CA1 or CA3) * 6) + 1 = pc

c (Vanitas Vector Points)

if (ichoice(39) .eq. 39) then

if (output .eq. 'F') then

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *)'39. Pivot Point table for pcs generated by ',

1 'combining output from'

write (1, *) ' 6m(1)m(2) + m(1) + m(2) = CA1 and'

write (1, *) ' 6m(1)m(2) - m(1) - m(2) = CA3',

1 ' (Vanitas Vector Points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, '39. Pivot Point table for pcs generated by ',

1 'combining output from'

print *, ' 6m(1)m(2) + m(1) + m(2) = CA1 and'

print *, ' 6m(1)m(2) - m(1) - m(2) = CA3',

1 ' (Vanitas Vector Points)'

endif

do i = lowervv, uppervv

if ((vv(i,1) .ne. 0) .or. (vv(i,3) .ne. 0)) then

if (output .eq. 'F') then

write (1, *) 'Pivot Point for pc at ', i,

1 ' generated by CA1 and,or CA3'

else

print *, 'Pivot Point for pc at ', i,

1 ' generated by CA1 and,or CA3'

endif

endif

enddo

endif

c *40 voids in Pivot Points table generated by combining

cg output from 6m(1)m(2) + m(1) + m(2) = CA1 and

c 6m(1)m(2) - m(1) - m(2) = CA3

c Note: ((commom void for CA1 and CA3) * 6) + 1 = pp

c (Vanitas Vector Points)

if (ichoice(40) .eq. 40) then

if (output .eq. 'F') then

write (1, ' ')

write (1, ' ')

write (1, *) ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

write (1, *) ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

write (1, *)'40. Pivot Points for Plus primes (pp). '

write (1, *)'(generated by voids in the table ',

1 'obtained from combining output of'

write (1, *) ' 6m(1)m(2) + m(1) + m(2) = CA1 and'

write (1, *) ' 6m(1)m(2) - m(1) - m(2) = CA3'

1 ' (Vanitas Vector Points)'

else

print *, ' '

print *, ' '

print *, ' user desired span = ', loweris,

1 ' thru ', upperis, ' (is points)'

print *, ' user desired span = ', lowervv,

1 ' thru ', uppervv, ' (vv points)'

print *, '40. Pivot Points for Plus primes (pp). '

print *, '(generated by voids in the table ',

1 'obtained from combining output of'

print *, ' 6m(1)m(2) + m(1) + m(2) = CA1 and'

print *, ' 6m(1)m(2) - m(1) - m(2) = CA3'

1 ' (Vanitas Vector Points)'

endif

do i = lowervv, uppervv

if ((vv(i,1) .eq. 0) .and. (vv(i,3) .eq. 0)) then

if (output .eq. 'F') then

write (1, *) 'pivot point for pp at ', i,

1 ' generated by CA1 and CA3'

else

print *, 'pivot point for pp at ', i,

1 ' generated by CA1 and CA3'

endif

endif

enddo

endif

if (ichoice(42) .eq. 42) go to 100

if (ichoice(43) .eq. 43) go to 100

if (ichoice(44) .eq. 44) go to 100

c 53 test for Repeat all pages, retaing preveous starred choices.

if (ichoice(53) .eq. 53) then

ichoice(53) = 0 ! clear option

go to 30 ! top of page 1

endif

c 54 test for Erase all user input and Repeat everything

if (ichoice(54) .eq. 54) then

do i = 1, 56

ichoice(i) = 0

enddo

go to 5 ! start of questions

endif

c 55 test for Examine starred choices made from pages 1 and 2 in

c this version of program Segment Sieve, then repeat page 3

if (ichoice(55) .eq. 55) then

do i = 1, 31

if (ichoice(i) .eq. i) print *, 'ichoice(',i,') = ', ichoice(i)

enddo

ichoice(55) = 0 ! reset examine option

print *, 'Press return when ready to continue.'

pause

go to 70 ! top of page 3

endif

c 56 test for Examine all starred choices made from pages 1, 2,

c and 3, retain starred choices, then Repeat all pages

if (ichoice(56) .eq. 56) then

do i = 1, 40

if (ichoice(i) .eq. i) print *, 'ichoice(',i,') = ', ichoice(i)

enddo

ichoice(56) = 0 ! reset examine option

print *, 'Press return when ready to continue.'

pause

go to 30 ! top of page 1

endif

If (output .eq. 'F') print *, 'The file name you chose for ',

1 'storage of results was ',

2 filename

100 close (1)

stop

10000 print *, 'error opening ', filename, ' It may be open.'

stop

c Jeff's Jargon: (a repeat of this glossary is at the beginning of code)

c

c Chenault is pronounced Shin-alt

c

c is = integer scale. The variable n is used for is calcultions.

c n = integer, no limit

c

c A: A prime number is a positive integer number, greater than

c 1; such that 1 and itself are the only integers which

c divide the prime number yielding a positive integer with a

c zero remainder.

c B: The Chenault series consists of: 2, 3, all (6n-1) and all (6n+1).

c C: cn = Chenault number = an element of the Chenault series.

c D: mp = (6n-1) primes = "minus primes".

c E: pp = (6n+1) primes = "plus primes".

c F: mc = (6n-1) composite numbers = "minus composites".

c G: pc = (6n+1) composite numbers = "plus composites".

c H: mcn = (minus Chenault number) = any mp or mc.

c I: pcn = (plus Chenault number) = any pp or pc.

c J: unsorted cn's = 2 and 3.

c K: sorted cn's = all (6n-1) and all (6n+1).

c

c

c Jeff's Jargon: (Section II)

c

c A: tpc: Twin Prime Candidate = 6n-1, 6n+1 pair for a given n.

c B: potential twin prime partner: ptpp

c Letting a n6-1 prime be the reference, its potential

c twin prime partner is the n6+1 for that n.

c Letting a n6+1 prime be the reference, its potential

c twin prime partner is the n6-1 for that n.

c C: lonesome prime: a prime (either mp or pp) whose ptpp is a composite.

c D: lonesome plus prime: pp whose ptpp is mc.

c E: lonesome minus prime: mp whose ptpp is pc.

c F: lonesome plus composite: (6n+1) is composite, while

c (6n-1) is prime.

c G: lonesome minus composite: (6n+1) is prime, while

c (6n-1) is composite.

c H: married plus prime: pp of a twin prime pair.

c I: married minus prime: mp of a twin prime pair.

c J: the composite table: all composite (6n-1) and

c all composite (6n+1)

c K: the plus composite table all composite (6n+1)

c L: the minus composite table all composite (6n-1)

c A: integer scale: is

c B: Vanita’s Vector= an integer scale that is a replica of the is. Each integer on Vanita’s Vector corresponds to a multiple of 6 on the is.

c C: vv point = point on Vanita’s Vector. Note 3: Throughout this composition, the variable mvv = vv point = a positive integer, 1, thru infinity.

c D: tppptn = vv point = Twin Prime Pivot Point

c = n for an (6n-1),(6n+1) pair of primes.

c E: ptpppt = vv point = potential twin prime pivot point

c = n for an (6n-1),(6n+1) pair on is.

c F: ctpppt = vv point = compromised Pivot Point

c = either 6n -1 and, or 6n + 1 is composite.

c A: CAI = Chenault Algorithm I.

c B: CAII = Chenault Algorithm II.

c C: CAIII = Chenault Algorithm III.

c D: Chenault Segment Sieve = eliminates all ptppp on Vanita’a Vector that satisfy either CAI, CAII, or CAIII.

c E. Segment Sieve = Chenault Segment Sieve

c = an exercise of the Chenault Solution

c vv = Vanita's Vector = a replica of the is. Each integer of Vanita's

c Vector corresponds to a multiple of 6 on the is.

c The varible m is used for vv calculations.

c m = integer, no limit

c

c All composites are indicated by the Chenault Solution. (vv points)

c

c Chenault Solution = (6*m(1)*m(2) +- m(1) +- m(2)) (vv points)

c

c The sign combinations used by the Chenault Algorithms determine whether

c (6*n)-1 or (6*n)+1 is composite, i. e., whether we have a plus composite

c or a minus composite.

c

c --------------------------------------------------------------------

c --------------------------------------------------------------------

c

c is section:

c

c is = integer scale. The variable n is used for is calcultions.

c n = integer, no limit

c

c Chenault Series = 2, 3, (n6 - 1), (n6 + 1) (is points)

c Thelma's Thoughts: Prime Numbers are a subset of the Chenault Series.

c For proof, see "Prime Thoughts" by Tom Chenault.

c

c Chenault Number = member of Chenault Series

c

c twin pair = (6n-1), (6n+1) for the same n

c

c

c ptpp = potential twin prime partner =

c The potential twin prime partner of a

c n6-1 prime is the n6+1 for that n.

c The potential twin prime partner of a

c n6+1 prime is the n6-1 for that n.

c

c pp = plus prime = prime at (6n+1).

c

c mp = minus prime = prime at (6n-1).

c

c twin prime pair = (6n+1), (6n-1) = pp, mp for the same n.

c

c

c pc = plus composite = a composite at (6n+1).

c

c mc = minus composite = a composite at (6n-1).

c d

c twin composite pair = (6n+1), (6n-1) = pc, mc for the same n

c

c lonesome prime = prime (either mp or pp) whose potential twin prime

c partner is a composite.

c

c lonesome plus prime = pp whose potential twin prime partner is a mc.

c

c lonesome minus prime = mp whose potential twin prime partner is a pc.

c

c married plus prime = the pp from a twin prime pair (besides 3, 5)

c

c married minus prime = the mp from a twin prime pair (besides 3, 5)

c

c --------------------------------------------------------------------

c --------------------------------------------------------------------

c

c vv section:

c

c Vanita's Vector (vv) = a replica of the is. Each integer of Vanita's

c Vector corresponds to ((the vv integer) * 6)

c on the is.

c The varible m is used for vv calculations.

c m = integer, no limit

c

c pttppvpt = vv = potential twin prime pivot point.

c

c tppvpt = vv = twin prime pivot point = an integer multiple of 6 such

c that ((6*tppp)-1, ((6*tppp)+1) are the is elements of a twin prime).

c

c pppvpt = vv = plus prime pivot point.

c

c mppvpt = vv = minus prime pivot point.

c

c lonesome pvpt = vv = pivot point for pp,mc or pc,mp.

c

c lonesome pppvpt = vv which serves as a pivot point for pp, mc.

c

c lonesome mppvpt = vv which serves as a pivot point for pc, mp.

c

end

Subscribe to:
Posts (Atom)