The purpose of this assignment is to give you practice working with one dimensional arrays. It will also introduce you to one of the oldest mathematical algorithms in the world. Note: It's easy to find Java code for this algorithm on the Internet, but DON'T go looking for it. This is a simple algorithm. You are capable of implementing it yourself, and the purpose of the assignment is for you to do some programming. Feel free to look at the Wikipedia page on the Sieve of Eratosthenes, though.
1. Write a program that will compute all of the prime numbers up to a specified value in a number of different ways.
- Your program must have 3 command line arguments. The first gives that value that you want to generate primes to. The second gives the method that the program will use to generate the list of primes. The third argument, if present, tells the program to print out the list of primes, for debug purposes. For example, running the program as follows:
>Primes 100 1 p
should generate an array of numbers such that the elements with prime indices have value 1, and elements with composite indices have value 0. Since there is a 3rd command line argument, the program should print out the list of prime numbers.
- The methods that you must implement are:
1. Trial division by the numbers up to n
2. Trial division by 2 and the odd numbers up to sqrt(n)
3. Trial division by the primes up to sqrt(n)
4. The sieve or Eratosthenes
Once it has finished, the program should also print out the amount of time that it took to run.
- Run your program on different sized inputs for the different methods.
- Write a 1 page report including a table or graph of the results.
- Turn in your report, your code and class files to the D2L dropbox.
Optional: Optimize your sieve routine so that it uses an array of bits, and only stores the odd numbers in the array. See how high you can go with this optimized sieve. Write about it in your report.
- Write your program so that it works with command line arguments.
- Write the 4 different prime finding modes.
- Make sure the programs compile and run from the command line without modification.
- Write a 1 page report summarizing the results of running your program in different modes, and for different list sizes.
- Include your source, executable files and report in your turnin.
- Zip all of your files in a SINGLE .zip file and turn it in to the D2L dropbox.