Programa rodando até certo ponto

Tenho um trabalho da faculdade em java pra fazer, o objetivo é ler 20 numeros, dizer se cada um deles é par, impar, primo ou não primo e o fatorial de cada, o programa abaixo só mostra até o fatorial, não fala se é primo ou não primo, e esta entrando em loop, alguem me ajuda?
import javax.swing.JOptionPane;
public class Fatorial {public static void main(String[] args)
{int numero,aux,fatorial,ehprimo;
String entra;

int cont = 0;
while (cont < 20)
{ entra =JOptionPane.showInputDialog(“INFORME UM NUMERO”);
numero = Integer.parseInt (entra);
if ((numero % 2) == 1) {System.out.println(numero + “EH IMPAR”);}
else
{System.out.println(numero + “EH PAR”);}
aux = numero;
fatorial = 1;
while (aux > 1);
{fatorial = fatorial * aux;
aux = aux -1;
}
System.out.println("FATORIAL DE " + numero + " = " + fatorial);
ehprimo = 1;
aux = numero - 1;
while (aux > 1);
{if ((numero % aux) == 0);
{ehprimo = 0;
aux = 1;
}
aux = aux - 1;
}
if (ehprimo == 1)
{System.out.println(“O numero” + numero + “ehprimo”);
}
else
{System.out.println(“O numero” + numero + “NAO EH PRIMO”);
}
}
}
}

O while não leva ponto e virgula no fim. Assim ficará sempre em loop

Meu Deus, como não percebi kkkk

Esse problema foi solucionado, o problema agora é que ta em loop a cotagem, eu adiciono os 20 numeros mas o sistema fica pedindo mais infinitamente, consegue me ajudar?

Se só tiraste os ; da frente do while ainda te falta incrementar a variavel cont. Inicias a zero mas nunca mudas o valor, logo será sempre menor que 20.