Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Lógica: Codigo indica se é primo ou não.

Olá, tudo bem?

Me chamo Leonardo e estou com uma dúvida, tenho um código que deveria indicar se o numero passado como parâmetro para a função é primo ou não, maassss, o código funciona até certo número, depois, começa a indicar numero sim numero não como primo. (Testem a casa dos 90's, da pra entender o que eu quero dizer, segue código:

<script>
    function verificaPrimo(numero){
        var numPrimo = true;
        for(var count = 2; count < numero; count++){
            if(numero % count == 0)
                numPrimo = false;
            break;
        }


        if(numPrimo == true && numero != 1){
            console.log("O número: " + numero + " é primo");
        }else{
            console.log("O número: " + numero + " não é primo");
        }

    }

</script>
2 respostas
solução!

Olá, Leonardo, como vai?

O erro está na falta de chaves para abrir e fechar a sua primeira condição if. Quando queremos que seja executada uma cadeia de instruções, ou seja, mais de uma instrução pelo menos, devemos abrir e fechar as chaves do if, ao não abrir as chaves, apenas a primeira instrução é executada, ou seja, ali no seu if(numero % count == 0) apenas a instrução numPrimo = false; é executada quando a condição do if é atendida, já a instrução break; sempre é executada, pois ela ficou fora do if, já que o if sem chaves executa a apenas a primeira instrução que vem após ele. Então, quando a condição do if não é atendida, o break; já é executado logo em seguida, parando o loop for, que está causando a inconsistência dos resultados.

Espero ter ajudado.

Abraços e bons estudos!

Muito obrigado pela ajuda, foi apenas uma breve falta de atenção.