001    package ps0.optional;
002    
003    public class Primes {
004    
005        private static void findPrimes(int nValues) {
006            boolean isPrime = true;
007    
008            for (int i = 2; i <= nValues; i++) {
009                isPrime = true;
010    
011                for (int j = 2; j < i; j++) {
012                    if (i % j == 0) {
013                        isPrime = false;
014                        break;
015                    }
016                }
017    
018                if (isPrime) {
019                    System.out.println(i);
020                }
021            }
022        }
023    
024    
025        private static void findPrimesFaster(int nValues) {
026            // PLACE YOUR IMPLEMENTATION HERE
027            System.out.println("The method findPrimesFaster has not been implemented");
028        }
029    
030    
031        private static void findPrimesEvenFaster(int nValues) {
032            // PLACE YOUR IMPLEMENTATION HERE
033            System.out.println("The method findPrimesEvenFaster has not been implemented");
034        }
035    
036    
037    
038        public static void main(String[] args) {
039    
040            // Find and print all primes between 0 and 50.
041    
042            System.out.println("Running method findPrimes:");
043            findPrimes(50);
044    
045            System.out.println("\nRunning method findPrimesFaster:");
046            findPrimesFaster(50);
047    
048            System.out.println("\nRunning method findPrimesEvenFaster:");
049            findPrimesEvenFaster(50);
050    
051    
052    
053            // Time how long it takes to find primes.
054    
055            long startTime = 0;
056            long endTime = 0;
057    
058    
059            System.out.print("\n\nTiming method findPrimes:");
060            startTime = System.currentTimeMillis();
061            findPrimes(20000);
062            endTime = System.currentTimeMillis();
063            System.out.println("  " + (endTime-startTime) + " milliseconds");
064    
065            System.out.print("\nTiming method findPrimesFaster:");
066            startTime = System.currentTimeMillis();
067            findPrimesFaster(20000);
068            endTime = System.currentTimeMillis();
069            System.out.println("  " + (endTime-startTime) + " milliseconds");
070    
071            System.out.print("\nTiming method findPrimesEvenFaster:");
072            startTime = System.currentTimeMillis();
073            findPrimesEvenFaster(20000);
074            endTime = System.currentTimeMillis();
075            System.out.println("  " + (endTime-startTime) + " milliseconds");
076    
077    
078            System.out.print("\n\nTiming method findPrimes:");
079            startTime = System.currentTimeMillis();
080            findPrimes(50000);
081            endTime = System.currentTimeMillis();
082            System.out.println("  " + (endTime-startTime) + " milliseconds");
083    
084            System.out.print("\nTiming method findPrimesFaster:");
085            startTime = System.currentTimeMillis();
086            findPrimesFaster(50000);
087            endTime = System.currentTimeMillis();
088            System.out.println("  " + (endTime-startTime) + " milliseconds");
089    
090            System.out.print("\nTiming method findPrimesEvenFaster:");
091            startTime = System.currentTimeMillis();
092            findPrimesEvenFaster(50000);
093            endTime = System.currentTimeMillis();
094            System.out.println("  " + (endTime-startTime) + " milliseconds");
095        }
096    
097    }