Checking if a number is prime

Asked

Viewed 117 times

-1

I want to run a 1 to 5 and then I want to know if any of the numbers of the for is prime.

for(j = 1 ; j<= 10; j++){ //Percorres os numeros a serem testados
    for(i = 1;i <= j; i++){ // Listo Todos os divisores
      var numeroDivisores = 0;
    if(j % i == 0){
      numeroDivisores++ //Adiciona os divisores daquele numero
    }
  }                      
} if (numeroDivisores == 2){// vou pegar cada divisor e dividir por numero primo
    console.log("Primo, somente 2x divisores")
}else{
    console.log("Infelizmente não é primo")
  }
  • If you wanted to do the for from 1 to 5, why did j <= 10? Anyway, if you search the site, you will find various algorithms to check if a number is prime.

  • @hkotsubo It was a mistake of attention there, pardon.

1 answer

4

There were many logical errors so I found it easier to refactor your code than to make punctual corrections.

var numeroDivisores;
//É comum utilizar os iteradores em ordem alfabética ordenando dos pelo grau de aninhamento
for (i = 1; i <= 10; i++) {

  numeroDivisores = 0; // A cada novo número a ser verificado o número de divisores é zerado.

  //Simplificando o caso de teste de divisibilidade.
  for (j = 1; j <= i; j++)
    if (i % j == 0) numeroDivisores++;

  //Depois de testada a divisibilidade cada número é categorizado conforme o número de divisores.
  console.log((numeroDivisores === 2) ? `Primo ${i}, somente 2x divisores` : `Infelizmente ${i} não é primo`);

}

Browser other questions tagged

You are not signed in. Login or sign up in order to post.