I am new to Java and am currently trying to create a program that will determine if the entered number is prime or composite. I've figured out most of it, but there's one part that has me stumped.
I want the code to print a message stating either "the number needs to be greater than 1" if a 0 or a negative number is entered, or "one is neither prime nor composite" if a 1 is entered.
Here's my code:
public class Main {
public static void main(String[] args) {
    
    int num;
    boolean prime = true;
    String answer;
    Scanner keyboard = new Scanner(System.in);
    
    do {
        
    System.out.print("Please enter a number ==> ");
    num = keyboard.nextInt();
    
    if (num < 1)
        System.out.println("The number entered needs to be greater than one.");
    else if (num == 1)
        System.out.println("One is neither a prime nor composite number.");
    else {
        for (int ii = 2; ii <= num/2; ii++) {
            if (num % ii == 0) {
                prime = false;
                break;
            }
        }
    }
    if (prime == true)
        System.out.println("The integer " + num + " is prime.");
    else {
        System.out.println("The integer " + num + " is composite.");
    }
    
    System.out.print("Would you like to go again? (yes/no) ");
    answer = keyboard.next();
    System.out.print("\n");
    } while (answer.equals("yes"));
}
}
My issue is that when I run the code and enter a 0, 1, or negative number, the code prints the correct message but adds "The integer "0, 1, -#" is prime."
I don't want it to do so, and only want it to print the corresponding message. What am I missing?
 
     
     
    