No me llevo muy bien con las pilas y las colas....
En cualquier caso, aquí no veo que se estén buscando números primos:
if(aux.peek()%2==0||aux.peek()==1){
push(aux.peek());
aux.pop();
if(aux.isEmpty()){
break;
}
}else{
aux.pop();
if(aux.isEmpty()){
break;
}
Con ese
if else, se está distinguiendo entre pares e impares, pero no primos.
Que NINGÚN número par es primo.
Pero no todos los impares son primos.
Necesitarías un método de apoyo, que sea tipo boolean, de manera que reciba un entero y diga TRUE si es primo o FALSE si no lo es.
Un número primo es aquel que solo es divisible por sí mismo (bueno, y por 1, porque todos los números son divisibles por 1)
Por ejemplo si el método recibe el número 9, pues ha de comprobar si es divisible por 8, por 7, por 6, por 5, por 4, por 3 ó por 2.
Si es divisible por alguno de ellos, entonces NO es primo.
Resulta que 9 SÍ es divisible por 3,
9 % 3 == 0 es TRUE
Por tanto, 9 NO es primo.
Para desarrollar un algoritmo que compruebe lo de ser primo, ya habrás deducido que se necesita un bucle que vaya en orden inverso comenzando por n-1 hasta llegar a 2.
Y en cada iteración comprobar si n es divisible por alguno de los números de esa secuencia.
Intenta escribir ese algoritmo, o busca ejemplos por la red, que los habrá a montones.