Olá, Pedro. Tudo bem?
Primeiro, vamos corrigir a lógica para verificar se um número é primo. Um número é considerado primo se ele for maior que 1 e não for divisível por nenhum número além de 1 e ele mesmo. Aqui está um exemplo de como você pode implementar isso usando uma expressão lambda:
ILambda operacaoPrimo = (a) -> {
if (a <= 1) {
System.out.println("Números negativos ou 0 não são primos");
return 0;
}
for (int i = 2; i <= Math.sqrt(a); i++) {
if (a % i == 0) {
System.out.println("Não é Primo");
return 0;
}
}
System.out.println("É primo");
return 1;
};
Neste exemplo, a função primo
verifica se a
é menor ou igual a 1 e retorna que não é primo. Caso contrário, ela verifica divisibilidade de 2 até a raiz quadrada de a
. Se encontrar um divisor, retorna que não é primo. Se não encontrar, retorna que é primo.
Além disso, parece que você está chamando a função primo
recursivamente com return primo(10);
, o que não é necessário para verificar a primalidade de um único número. Apenas retire essa chamada recursiva.
Espero ter ajudado e bons estudos!