My code is not returning the prime numbers but the original True/False statements. I have looked through many of the help queries and cannot see an answer to
this. Returns 4 errors when checked.
// Import statement:
import java.util.ArrayList;
class PrimeDirective {
// Add your methods here:
public boolean isPrime(int number) {
if (number == 2) {
return true;
}
else if (number < 2) {
return false;
}
for (int i = 2; i < number; i++) {
if (number % i == 0) {
return false;
}
}
return true;
}
public ArrayList<Integer> onlyPrimes(int[] numbers) {
ArrayList<Integer> primes = new Arraylist<Integer>();
for (int number : numbers) {
if (isPrime(number)) {
primes.add(number);
}
}
return primes;
}
}
public static void main(String[] args) {
PrimeDirective pd = new PrimeDirective();
int[] numbers = {6, 29, 28, 33, 11, 100, 101, 43, 89};
/*
System.out.println(pd.isPrime(7));
System.out.println(pd.isPrime(28));
System.out.println(pd.isPrime(2));
System.out.println(pd.isPrime(0))
*/
System.out.println(pd.onlyPrimes(numbers));
}
The last } before the main method should be after the main method.
details
// Import statement:
import java.util.ArrayList;
class PrimeDirective {
// Add your methods here:
public boolean isPrime(int number) {
if (number == 2) {
return true;
}
else if (number < 2) {
return false;
}
for (int i = 2; i < number; i++) {
if (number % i == 0) {
return false;
}
}
return true;
}
public ArrayList<Integer> onlyPrimes(int[] numbers) {
ArrayList<Integer> primes = new ArrayList<Integer>();
for (int number : numbers) {
if (isPrime(number)) {
primes.add(number);
}
}
return primes;
}
} // <= This } does not belong here
public static void main(String[] args) {
PrimeDirective pd = new PrimeDirective();
int[] numbers = {6, 29, 28, 33, 11, 100, 101, 43, 89};
/*
System.out.println(pd.isPrime(7));
System.out.println(pd.isPrime(28));
System.out.println(pd.isPrime(2));
System.out.println(pd.isPrime(0))
*/
System.out.println(pd.onlyPrimes(numbers));
}
// <= There should be a } here to end the class