**********JAVA********** 1) Write a program that reads n (say n=100) integers fr
ID: 664787 • Letter: #
Question
**********JAVA**********
1) Write a program that reads n (say n=100) integers from keyboard and outputs the integers in ascending order with 10 integers in each line. (Either INSERTION OR SELECTION SORT)
Write a method that displays on screen all prime numbers that are small than or equal to 10000. Make your program as fast as possible. Hint: This is a fast algorithm: You start with a sequence of numbers from 2 to 10000. You then output the smallest number in the sequence and remove all of its multiples from the sequence. You repeat the process until the sequence contains no numbers.
Explanation / Answer
Selection sort:
import java.util.*;
import java.lang.*;
import java.io.*;
class Sorting
{
public static int[] selectionSort(int[] integers){
for (int i = 0; i < integers.length - 1; i++)
{
int index = i;
for (int j = i + 1; j < integers.length; j++)
if (integers[j] < integers[index])
index = j;
int smallerNumber = integers[index];
integers[index] = integers[i];
integers[i] = smallerNumber;
}
return integers;
}
public static void main (String[] args) throws java.lang.Exception
{
System.out.println("Input all integers seperated by spaces e.g 4 6 7 8");
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
String input;
while((input=br.readLine())!=null){
System.out.println("Input taken is: "+input);
}
int[] integers = {};
StringTokenizer st = new StringTokenizer(input," ");
int index = 0;
while (st.hasMoreTokens()) {
//System.out.println(st.nextToken());
integers[index] = Integer.parseInt(st.nextToken());
index++;
}
int[] output = selectionSort(integers);
for(int i=0;i<output.length;i++){
if(i%10 == 0)System.out.println("");
System.out.print(output[i]+", ");
}
}
}
Prime numbers:
import java.util.*;
import java.lang.*;
import java.io.*;
class Primes
{
private static int [] primeNumbers(int last) { // Sieve_of_Eratosthenes algorithm
int [] ext = new int [last];
ext [0] = 2;
int idx = 1;
int prime = 1;
boolean isPrime = false;
while((prime += 2) <= last) {
isPrime = true;
for(int i = 0; i < idx; i++) {
if(prime % ext [i] == 0) {
isPrime = false;
break;
}
}
if(isPrime) {
ext [idx++] = prime;
}
}
int [] primes = new int [idx];
while(--idx >= 0) {
primes [idx] = ext [idx];
}
return primes;
}
public static void main (String[] args) throws java.lang.Exception
{
int[] primes = primeNumbers(10000);
for(int i =0;i < primes.length; i++){
System.out.println(primes[i]);
}
}
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.