Skip to content

Desafio 14 #11

Description

@LoostSoull

Ola @cami-la , tudo bem?

travei no desafio 14, encontrei um aluno que fez um codigo genial:


 Optional<Integer> maiorPrimo = numeros.stream()
                .filter(n -> {
                    if (Math.abs(n) < 2)
                        return false;
                    for (int i = 2; i < Math.abs(n); i++) {
                        if (Math.abs(n) % i == 0)
                            return false;
                    }
                    return true;
                })
                .max(Comparator.naturalOrder());
        System.out.println("O maior número primo é: " + maiorPrimo.get());
    }

testei e funcionou, porem nao entendi, porque ele utilizou o Math.abs, pesquisei sobre essa função, e ela serve para retornar o valor absoluto, como utilizamos divisao com mod zero, seria mesmo necessario? não entend o fato delle utilizar tambem : .filter(n -> { if (Math.abs(n) < 2) return false; , qual seria o sentido de comprar se o valor absoluto de "n" por exemplo da lista, se o valor absoluto de 2 é menor que 2? e caso seja, retorne false e por ai segue o codigo dele, poderia me explicar o codigo dele, assim posso tentar entender a logica dele

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions