MyProgrammingLab with Pearson eText -- Access Code Card -- for Building Java Programs
MyProgrammingLab with Pearson eText -- Access Code Card -- for Building Java Programs
5th Edition
ISBN: 9780135472460
Author: REGES, Stuart, Stepp, Marty
Publisher: PEARSON
bartleby

Videos

Expert Solution & Answer
Book Icon
Chapter 11, Problem 1E

Explanation of Solution

Modified “Sieve()” program to make required two optimizations:

//Import required packages

import java.io.File;

import java.io.FileNotFoundException;

import java.util.ArrayList;

import java.util.Arrays;

import java.util.Iterator;

import java.util.LinkedList;

import java.util.List;

import java.util.Scanner;

//Definition of class Test

public class Sieve {

    //Definition of main class

    public static void main(String[] args)

    {

        //Print the statement

System.out.println("This program will tell you all prime" );

System.out.println( "numbers up to a given maximum . ");

        System.out . println() ;

        //Create an object for scanner class

        Scanner console= new Scanner(System. in);

        //Get the integer from the user

        System.out.print( "Maximum number? " );

        int max= console.nextInt() ;

        //Create an object for sieve

        List<Integer> primes= sieve(max) ;

        //Print the result

        System.out.println(primes);

    }

    //Definition of method sieve()

    public static LinkedList<Integer> sieve(int max)

    {

        //Create an object primes for LinkedList

LinkedList<Integer> primes = new LinkedList<Integer>();

        //Create an object numbers for LinkedList

LinkedList<Integer> numbers = new LinkedList<Integer>();

        //Add 2 to the list

        numbers.add(2);

        //Traverse the loop till it reaches max

        for (int i = 3; i <= max; i += 2)

        {

            //Add the values to the "numbers"

            numbers.add(i);

        }

        //Declare the variable sqrt

        double sqrt = Math.sqrt(max);

        //Check whether the numbers is not emppty

        while (!numbers.isEmpty())

        {

// remove a prime number from the front of the list

            int front = numbers.remove(0);

            //Add the front

        primes.add(front);

        //Check whether the front is greater than sqrt

        if (front >= sqrt)

        {

//Check whether the numbers is not empty

            while (!numbers.isEmpty()) {

            //Add the numbers

            primes.add(numbers.remove(0));

        }

    }

        // Create an object for iterator

    Iterator<Integer> itr = numbers.iterator();

    //Check whether itr has value

    while (itr.hasNext())

    {

        //Get the next value and store it in current

        int current = itr.next();

//Check whether "current" mod "front" equals to "0"

        if (current % front == 0)

        {

            //Remove the value

            itr.remove();

        }

        }

    }

    //Return the value of primes

    return primes;

}

}

Explanation:

  • Define the static method “sieve()”.
    • Create an object “primes” for the “LinkedList”.
    • Create an object “numbers" for the “LinkedList”.
    • Add “2” to the list.
    • Traverse the loop till it reaches “max”.
      • Add the values to the “numbers”.
    • Declare the variable “sqrt”.
    • Check whether the “numbers” is not empty.
      • Remove a prime number from the “front” of the list.
      • Add the front to “primes”.
    • Check whether the “front” is greater than “sqrt”.
      • Check whether the “numbers” is not empty.
        • Add the numbers.
    • Create an object for iterator.
    • Check whether the “itr” has value.
      • Get the next value and store it in current.
      • Check whether “current” mod “front” equals to “0”.
        • Remove the value.
          • Return the value of “primes.”

Expert Solution & Answer
Check Mark
Sample Output

Output:

This program will tell you all prime

numbers up to a given maximum .

Maximum number? 45

[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43]

Want to see more full solutions like this?

Subscribe now to access step-by-step solutions to millions of textbook problems written by subject matter experts!
Knowledge Booster
Background pattern image
Computer Science
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Recommended textbooks for you
Text book image
Database System Concepts
Computer Science
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:McGraw-Hill Education
Text book image
Starting Out with Python (4th Edition)
Computer Science
ISBN:9780134444321
Author:Tony Gaddis
Publisher:PEARSON
Text book image
Digital Fundamentals (11th Edition)
Computer Science
ISBN:9780132737968
Author:Thomas L. Floyd
Publisher:PEARSON
Text book image
C How to Program (8th Edition)
Computer Science
ISBN:9780133976892
Author:Paul J. Deitel, Harvey Deitel
Publisher:PEARSON
Text book image
Database Systems: Design, Implementation, & Manag...
Computer Science
ISBN:9781337627900
Author:Carlos Coronel, Steven Morris
Publisher:Cengage Learning
Text book image
Programmable Logic Controllers
Computer Science
ISBN:9780073373843
Author:Frank D. Petruzella
Publisher:McGraw-Hill Education
Definition of Array; Author: Neso Academy;https://www.youtube.com/watch?v=55l-aZ7_F24;License: Standard Youtube License