Help with PrimeDirective.Java

If someone can help. Trying to complete the PrimeDirective.Java challenge.

https://www.codecademy.com/courses/learn-java/projects/java-prime-directive

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));

    
  }

Thanks

You have a } in the wrong place.

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
2 Likes

Also,

// You wrote:
ArrayList<Integer> primes = new Arraylist<Integer>();

// It should be:
ArrayList<Integer> primes = new ArrayList<Integer>();
1 Like

Thanks for replying. I can’t see any difference between the two lines of code. What has changed?

OK, thanks. Moved that, same issue

You wrote Arraylist instead of ArrayList

Can’t seem to get it to work still, just returns the true/false etc.

// 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 onlyPrimes(int numbers) {
ArrayList primes = new ArrayList();

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));

}
}Preformatted text

Ah, it’s working now. Thanks all

1 Like

This topic was automatically closed 41 days after the last reply. New replies are no longer allowed.