He separado el calculo de numero primo en un metodo aparte para que veas como es, y cambiado la condicion del if.
Código
import java.util.Scanner; import java.util.Random; public class NumerosPrimos { int num; num = input.nextInt(); int[] numPrimo = new int[num]; //En este punto,la longitud del array es dado por la variable num. for (int i = 0; i < numPrimo.length; i++) { numPrimo[i] = rnd.nextInt(11); //Genera numeros aleatorios entre 1 y 10 if (!calcularSiEsPrimo(numPrimo[i])) { //calcula si el numero es primo o no }else { } } } static boolean calcularSiEsPrimo(int n) { if(n==2) return true; //si es dos, directamente retorna true, ya que 2 es numero primo if (n%2==0) return false; //se comprueba si es multiplo de dos for(int i=3;i*i<=n;i+=2) { // de no serlo, se comprueba si es divisible entre un numero impar if(n%i==0) { return false; }// si no es primo, devuelve false } return true; // y si lo es, devuelve true } }