-
-
Save Woodsphreaker/4b87cd82a096d86193f288e9a54d192e to your computer and use it in GitHub Desktop.
E sua função final não demonstra o que vc quer fazer
const isPrime = (number) => primeTest(number).length === 2 ?
O numero ${number} é primo:
Ops, o numero ${number} não é primo, pois é divisivel por mais de 2 números inteiros [${primeTest(number)}]
Eu sei o pq mas uma pessoa normal nao saberia o pq disso: primeTest(number).length === 2
E outra não são todos números q podem ser divididos por 1 ao 9.
Exemplo o 289 que só é dividido por 17 e não por 9 nem 3 que são divisores do 9.
tem um jeito de resolver isso com testes de primalidade, no momento to tentando refatorar esse codigo
function isPrime(n) {
if (n == 2 || n == 3 || n == 5 || n == 7) {
return true;
} else if ((n < 2) || (n % 2 == 0)) {
return false;
} else {
for (var i = 3; i <= Math.sqrt(n); i += 2) {
if (n % i == 0)
return false;
}
return true;
}
}
https://rosettacode.org/wiki/Primality_by_trial_division#JavaScript
https://github.com/wdiasvargas/primality_tests/tree/master/trial_division
Finalizei o refat, acho que agora ficou melhor.
Testei alguns casos aqui é acho que está cumprindo o proposto.
Qualquer contribuição será muito bem vinda :-)
As refatorações que eu faria:
Math.max(...divisors)
[].concat(divisors,number)
number % cur === 0