First of all, N in an Integer, not an int. So you need to extract the value from it before you do anything else.
Code:
int n = N.intValue();
You shouldn't be using a switch statement on N to see if it's valid, as it can be 0 or a negative number, which your switch statement will not detect. Use an if statement.
Code:
if (n <= 1)
{
System.out.println("Not a valid prime number");
}
You will want to add code in the if statement depending on what functionality you want. I can think of two possibilities:
1) Just quit the program (return statement)
2) Prompt for a new number. In this case, you'll want to replace the if with a while, and repeat the line that asks for a number.
The real question is - what are you currently learning in your class? Loops? Recursion? Arrays?
If that doesn't matter, then the easiest algorithm to understand would be to do the following. I will not give you code for this part, as this is the actual part of the assignment, but this should help you a bit:
Loop from 2 to the user inputted number (n).
Check the value modulus (% in Java) of n with every number between 2 and n-1. The modulus returns the remainder of dividing the two numbers, so if they divide evenly the answer is 0. For example, 10 % 2 = 0, 10 % 3 = 1, 10 % 4 = 2, 10 % 5 = 0, etc
If none of those values were 0, then you should display the value, and increment an ongoing counter of the number of primes. (THINK: How do you make sure that NONE of the values are 0? You'll need something to keep track of this)
Display the final count
Now, here are a couple of notes that might make the algorithm more efficient (these may not be necessary - as I said, I don't know what this program is intending to teach) PLEASE only implement these AFTER getting a working program. It's more important to have a functional program than a fast program.
If you hard-code 2, you can start your loop at 3 and increment by 2, since no even number is prime except for 2.
You really only need to check up to the square root of the max in your modulus loop
You only need to see if the number is divisible by any primes lower than it - if you store the primes in an array, vector, or similar structure, then you can simply check it against the primes you've already found. This also allows you to calculate all the primes first, and then display them however you want, in whatever order you want.
Those are all the simple algorithm improvements I can think of right now. You may be able to think of more.
Hope this helps.