Prime Numbers JavaScript

后端 未结 11 1124
长发绾君心
长发绾君心 2020-12-08 11:47

Can someone please give me guidance on getting the primenumbers here? This is homework so I don\'t want the answer but some pointers would be greatly appreciated. It\'s real

11条回答
  •  感情败类
    2020-12-08 12:37

    Try the below code. It checks if the number is prime and if it isn't it logs the number's lowest divisor. It is accurate for numbers with less than 17 digits (this theoretically would work for any number but the way JavaScript works means that this isn't true). You can try it out embedded into a website here: https://prime-number-checker-git-main.matt-destroyer.vercel.app/ Or in the snippet below.

    function check() {
        function checkIfPrime(number) {
            if (number < 1) {
                i = 'less than zero or the number you entered was zero';
                return false;
            } else if (number < 2) {
                i = 'itself only';
                return false;
            } else if (number < 4) {
                return true;
            } else if (number < 10) {
                if (number === 4) {
                    i = 2;
                    return false;
                } else if (number === 5) {
                    return true;
                } else if (number === 6) {
                    i = 2;
                    return false;
                } else if (number === 7) {
                    return true;
                } else if (number === 8) {
                    i = 2;
                    return false;
                } else if (number === 9) {
                    i = 3;
                    return false;
                } 
            } else if (number % 2 === 0) {
                i = 2;
                return false;
            } else if (number % 3 === 0) {
                i = 3;
                return false;
            } else if (number % 5 === 0) {
                i = 5;
                return false;
            } else if (number % 7 === 0) {
                i = 7;
                return false;
            } else {
                i = 4;
                while (i * i < number) {
                    if (number % i === 0) {
                        return false;
                    }
                    i += 2;
                }
                return true;
            }
        }
        let i = 0;
        let input = parseInt(prompt('Enter a number to check if it is prime:'));
        if (input < 0) {
            alert(input + ' is not a prime number. A prime number must be a positive integer.');
        } else if (input === "") {
            alert("You cannot check if 'BLANK' is prime.");
        } else if (input != Math.round(input)) {
            alert(input + ' is not a prime number. A prime number cannot be a decimal.');
        } else {
            let check = checkIfPrime(input);
            if (check === true) {
                alert(input + ' is a prime number.');
            } else {
                alert(input + ' is not a prime number. Its lowest divisor is ' + i + '.');
            }
        }
    }
    check();

提交回复
热议问题