A Java Course Outline
Using the Java By Dissection book
by Ira Pohl and Charlie McDowell

 



Homework 6 -The Sieve of Erastophenes

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.


Hints

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.


Feel free to report any site problems to the Webmaster, Debra Dolsberry.