Building Java Programs: A Back To Basics Approach (5th Edition)
Building Java Programs: A Back To Basics Approach (5th Edition)
5th Edition
ISBN: 9780135471944
Author: Stuart Reges, Marty Stepp
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!
Students have asked these similar questions
Which tool takes the 2 provided input datasets and produces the following output dataset? Input 1: Record First Last Output: 1 Enzo Cordova Record 2 Maggie Freelund Input 2: Record Frist Last MI ? First 1 Enzo Last MI Cordova [Null] 2 Maggie Freelund [Null] 3 Jason Wayans T. 4 Ruby Landry [Null] 1 Jason Wayans T. 5 Devonn Unger [Null] 2 Ruby Landry [Null] 6 Bradley Freelund [Null] 3 Devonn Unger [Null] 4 Bradley Freelund [Null] OA. Append Fields O B. Union OC. Join OD. Find Replace Clear selection
What are the similarities and differences between massively parallel processing systems and grid computing. with references
Modular Program Structure. Analysis of Structured Programming Examples. Ways to Reduce Coupling. Based on the given problem, create an algorithm and a block diagram, and write the program code: Function: y=xsin⁡x Interval: [0,π] Requirements: Create a graph of the function. Show the coordinates (x and y). Choose your own scale and show it in the block diagram. Create a block diagram based on the algorithm. Write the program code in Python. Requirements: Each step in the block diagram must be clearly shown. The graph of the function must be drawn and saved (in PNG format). Write the code in a modular way (functions and the main part should be separate). Please explain and describe the results in detail.
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.
Similar questions
SEE MORE QUESTIONS
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