Duvida primo

tenho um array que chama essa funcao que é para separar os primos
estou fazendo o teste para saber qual é primo, sabendo que primo só é divisivel por 1 e por ele mesmo.

essa é a sainda:

1, 3, 5, 7, 9, 11, 13, 15

pelo o q to vendo ta colocando os impares. dessa lista entra o 2 e sai o 9 e o 15 que tem mais de 2 divisores
como faço para colocar o dois e tirar o 9 e o 15

public static int[] primos(int array[]){
//int pares[] = null;

	//CODIGO DA QUESTAO 03
	
	int[] primos = new int[array.length];
    int j = 0;
	  for (int i = 0; i < array.length; i++){
    	   if ((array[i] % 1 == 0) && (array[i] % 2 != 0)){
    		   primos[j] = array[i];
    		 j++;
    		   }
	       
	  }      
    
	  int [] retorno = new int[j];
       for  (int p = 0; p < j; p++){
    	   if (primos[p]!= 0){
    	   retorno[p] = primos[p];
    	   }
       }
       
	return retorno;
}



  // Imprimir Primos
   
   int[] Q4 = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
   Aula03.imprimir(Aula03.primos(Q4));
  
   // Fim Primos

Pelo visto, você está fazendo as coisas por tentativa e erro. Por que é que você pôs um teste de divisão por 2?

a divisao por 2 elimiaria os q tiverem resto 0. ja excluiria os numeros 4,6,8,10,12,14
so que 2 é primo e foi excluido tb
e ficou o 9 q tem 3 divisores e 0 15 q tb tem

1 - por favor, edite sua postagem e coloque seu código entre as tags de codigo
ps.: edite, nao reposte

2 - o numero 1 também ñ é primo, logo ele tb ñ pode aparecer no resultado

3 - oq significa essa condição: array[i] % 1 == 0 - ela sempre será verdadeira

4 - no fim das contas vc só testa se os numeros se os numeros sao divisiveis por 2, reveja sua logica de como descobrir se um numero é primo

flw. t+