A
Java Course Outline
Using the Java By Dissection
book
by Ira
Pohl and
Charlie McDowell
We will write a program that will print a table of primes
between 2 and n where n
will be specified as input and read in
using tio
. The sieve uses a boolean array with each element set
to true. The sieve method is to use a loop to strike out the multiples for each
prime. The array elements that are left true are those that represent a prime.
So, if
sieve[0] = sieve[1]=sieve[2]=sieve[3]=sieve[4]= … sieve[100] = true
Then starting at sieve[4]
skipping every
other element changes this even-index elements to false. So after this loop
all the elements divisible by 2 are set to false except for the prime sieve[2]
.
Now do the same for elements sieve[6]
at intervals of 3. You do
this upto Math.sqrt(n)
. (You only need to go up to this point.
Can you tell why?) When this striking out process is complete only the sieve[i]
== true
represents that i
is prime. Print out the primes
in a neat table.
Some ideas include
What is new here is using arrays. Array variables are
reference variables. Such variables, unlike native type variable, can have their
values changed by a method. This is a critical idea you need to master.
If you don't understand how this will work, don't sit down and start banging out code. That path leads to insanity! So, first, sit down and figure out what the problem is asking. Next, write pseudocode to match what Prof Pohl has given. Then step through it on your own. Finally, when you understand the algorithm, start to code.