Ao implementar o crivo, que é o exercicio 7.27 do livro do Deitel 6ª edição, o enunciado é o seguinte:
a) Crie um array boolean de tipo primitivo com todos os elementos inicializados como true. Os elementos do array com indices primos permanecerão true. Todos os outros elementos do array por fim são configurados como false.
b) Iniciando com o indice de array 2, determine se um dado elemento é true. Se for, faça um loop pelo restante do array e configure como false se[size=18] cada elemento cujo indice é um multiplo do indice para o elemento com valor true[/size]. Entao continue o processo com o proximo elemento com valor true. Para o indice de array 2, todos os elementos alem do elemento 2 no array que tiverem indices multiplos de 2 (indices 4, 6, 8, 10 etc.) serão configurados como false; Quando esse processo for concluido, os elementos de array que ainda forem true indicam que o indice é um numero primo. Esses indices podem ser exibidos.
desenvolvi o seguinte codigo, mas nao estou interpretando bem a parte em negrito, tentei um operador ternario, mas minha logica esta erronea, alguem poderia me dar uma luz?
public class Crivo2 {
boolean bool[];
int primes[];
public void findPrimes() {
bool = new boolean[100];
primes = new int[100];
for (int i = 2; i < bool.length; i++) {
bool[i] = true;
if (bool[i] == true) {
for (int j = 2; j < bool.length; j++) {
if (bool[i] % bool[i] ? 0 : i == 0) {
bool[i] = false;
}
}
}
}
}
public static void main(String[] args) {
Crivo2 c = new Crivo2();
c.findPrimes();
}
}