Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Ajuda para identificar números primos

Olá pessoal!

Estou com a seguinte dúvida, estou tentando montar um joguinho de advinhações ( semelhante nas atividades) e gostaria de saber qual seria o melhor método do 'programa' verificar se o número digitado é primo ou não...seria com a instrução "for ()" ?

obs: O número primo é aquele que só é divisível por ele mesmo e por 1 (totalizando dois números naturais).

<meta charset = "utf-8">

<script>

var numero = Math.round(prompt ("Digite um número"));

if(numero % 2 == 0) {

    alert ("Par");
} else{

    alert ("Impar");
}

if(numero >= 10){

    alert("Número é maior que 10");
}else{

    alert("Número é igual ou menor que 10")
}


</script>

Desde já agradeço!

1 resposta
solução!

Opa Eduardo

Eu costumo fazer o seguinte:

//Colocar aqui o número digitado
let numeroDigitado;
let divisor = 2;
while(numeroDigitado%divisor != 0)
    divisor++;

if(numeroDigitado == divisor)
    console.log("Número Primo!");
else
    console.log("Número NÃO primo!");

O código vai procurar pelo primeiro divisor e ver se eles são iguais.

Porém você pode dar mais semântica (significado) ao seu código. A regra matemática diz que se nenhum número possuir um divisor até a raiz quadrada dele, então é um número primo.

Código mais semântico:

let numeroDigitado;
 let divisor = 2;

function getRaizQuadrada(numero){
    return Math.sqrt(numero);
}

function getPrimeiroDivisor(numero){
    let raizNumero = getRaizQuadrada(numero);
    while(raizNumero%divisor != 0)
        divisor++;

    return divisor;
}


// Na função que chamar você pode verificar 
// se são primos

function main(){
    if(numeroDigitado == getPrimeiroDivisor(numeroDigitado)
        console.log("É um número primo");
    else
        console.log("Não é um número primo!");
}

Espero que tenha ajudado. Qualquer coisa chame :)