
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.
- Check whether the “numbers” is not empty.
- 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.”
- Remove the value.

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?
Chapter 11 Solutions
Building Java Programs: A Back To Basics Approach (5th Edition)
- Show the correct stereochemistry when needed!! mechanism: mechanism: Show the correct stereochemistry when needed!! Br NaOPh diethyl ether substitutionarrow_forwardIn javaarrow_forwardKeanPerson #keanld:int #keanEmail:String #firstName:String #lastName: String KeanAlumni -yearOfGraduation: int - employmentStatus: String + KeanPerson() + KeanPerson(keanld: int, keanEmail: String, firstName: String, lastName: String) + getKeanld(): int + getKeanEmail(): String +getFirstName(): String + getLastName(): String + setFirstName(firstName: String): void + setLastName(lastName: String): void +toString(): String +getParkingRate(): double + KeanAlumni() + KeanAlumni(keanld: int, keanEmail: String, firstName: String, lastName: String, yearOfGraduation: int, employmentStatus: String) +getYearOfGraduation(): int + setYearOfGraduation(yearOfGraduation: int): void +toString(): String +getParkingRate(): double In this question, write Java code to Create and Test the superclass: Abstract KeanPerson and a subclass of the KeanPerson: KeanAlumni. Task 1: Implement Abstract Class KeanPerson using UML (10 points) • Four data fields • Two constructors (1 default and 1 constructor with all…arrow_forward
- Plz correct answer by best experts...??arrow_forwardQ3) using the following image matrix a- b- 12345 6 7 8 9 10 11 12 13 14 15 1617181920 21 22 23 24 25 Using direct chaotic one dimension method to convert the plain text to stego text (hello ahmed)? Using direct chaotic two-dimension method to convert the plain text to stego text?arrow_forward: The Multithreaded Cook In this lab, we'll practice multithreading. Using Semaphores for synchronization, implement a multithreaded cook that performs the following recipe, with each task being contained in a single Thread: 1. Task 1: Cut onions. a. Waits for none. b. Signals Task 4 2. Task 2: Mince meat. a. Waits for none b. Signals Task 4 3. Task 3: Slice aubergines. a. Waits for none b. Signals Task 6 4. Task 4: Make sauce. a. Waits for Task 1, and 2 b. Signals Task 6 5. Task 5: Finished Bechamel. a. Waits for none b. Signals Task 7 6. Task 6: Layout the layers. a. Waits for Task 3, and 4 b. Signals Task 7 7. Task 7: Put Bechamel and Cheese. a. Waits for Task 5, and 6 b. Signals Task 9 8. Task 8: Turn on oven. a. Waits for none b. Signals Task 9 9. Task 9: Cook. a. Waits for Task 7, and 8 b. Signals none At the start of each task (once all Semaphores have been acquired), print out a string of the task you are starting, sleep for 2-11 seconds, then print out a string saying that you…arrow_forward
- Programming Problems 9.28 Assume that a system has a 32-bit virtual address with a 4-KB page size. Write a C program that is passed a virtual address (in decimal) on the command line and have it output the page number and offset for the given address. As an example, your program would run as follows: ./addresses 19986 Your program would output: The address 19986 contains: page number = 4 offset = 3602 Writing this program will require using the appropriate data type to store 32 bits. We encourage you to use unsigned data types as well. Programming Projects Contiguous Memory Allocation In Section 9.2, we presented different algorithms for contiguous memory allo- cation. This project will involve managing a contiguous region of memory of size MAX where addresses may range from 0 ... MAX - 1. Your program must respond to four different requests: 1. Request for a contiguous block of memory 2. Release of a contiguous block of memory 3. Compact unused holes of memory into one single block 4.…arrow_forwardusing r languagearrow_forwardProgramming Problems 9.28 Assume that a system has a 32-bit virtual address with a 4-KB page size. Write a C program that is passed a virtual address (in decimal) on the command line and have it output the page number and offset for the given address. As an example, your program would run as follows: ./addresses 19986 Your program would output: The address 19986 contains: page number = 4 offset = 3602 Writing this program will require using the appropriate data type to store 32 bits. We encourage you to use unsigned data types as well. Programming Projects Contiguous Memory Allocation In Section 9.2, we presented different algorithms for contiguous memory allo- cation. This project will involve managing a contiguous region of memory of size MAX where addresses may range from 0 ... MAX - 1. Your program must respond to four different requests: 1. Request for a contiguous block of memory 2. Release of a contiguous block of memory 3. Compact unused holes of memory into one single block 4.…arrow_forward
- using r languagearrow_forwardWrite a function to compute a Monte Carlo estimate of the Beta(3, 3) cdf, and use the function to estimate F(x) for x = 0.1,0.2,...,0.9. Compare the estimates with the values returned by the pbeta function in R.arrow_forwardWrite a function to compute a Monte Carlo estimate of the Gamma(r = 3, λ = 2) cdf, and use the function to estimate F(x) for x = 0.2, 0.4, . . . , 2.0. Compare the estimates with the values returned by the pgamma function in R.arrow_forward
- Database System ConceptsComputer ScienceISBN:9780078022159Author:Abraham Silberschatz Professor, Henry F. Korth, S. SudarshanPublisher:McGraw-Hill EducationStarting Out with Python (4th Edition)Computer ScienceISBN:9780134444321Author:Tony GaddisPublisher:PEARSONDigital Fundamentals (11th Edition)Computer ScienceISBN:9780132737968Author:Thomas L. FloydPublisher:PEARSON
- C How to Program (8th Edition)Computer ScienceISBN:9780133976892Author:Paul J. Deitel, Harvey DeitelPublisher:PEARSONDatabase Systems: Design, Implementation, & Manag...Computer ScienceISBN:9781337627900Author:Carlos Coronel, Steven MorrisPublisher:Cengage LearningProgrammable Logic ControllersComputer ScienceISBN:9780073373843Author:Frank D. PetruzellaPublisher:McGraw-Hill Education





