用JavaScript判断一个数是否是素数

素数,除了1和它本身其它数都不整除。
这里我们用反证法来解决这个问题,
反证法:
1.假设某个结论成立;
2.尝试找出反例,推翻假设


第一步,首先假设这个数字是素数

var flag = true;

第二步,找反例
从2开始到n-1,都不整除

for(var i = 2; i < n; i++){
    if(n % i == 0){
        flag = false;//证明n不是素数了,-推翻假设了
        break;
    }
}

第三步,因为我们也不知道flag最终到底是什么,用if-else判断输出看一下

if(flag){                     //此时flag为true,n是素数
    console.log(n+"是素数");
}else{                        //flagfalse,n不是素数
    console.log(n+"不是素数");
}

下面贴出代码

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <script>
        function primeNumber(n) {
            var flag = true;
            if (n == 0 || n == 1) {
                console.log(n + "既不是素数也不是合数");
            }
            for (var i = 2; i < n; i++) {
                if (n % i == 0) {
                    flag = false;
                    break;
                }
            }
            if (flag) {
                console.log(n + "是素数")
            } else {
                console.log(n + "不是素数")
            }
        }
        primeNumber(parseInt(prompt("请输入一个自然数")));
    </script>
</head>
<body>

</body>
</html>
  • 10
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。毕业设计项目,内含源码及据库文件,亲测可以用。
### 回答1: 判断一个数是否为素数,可以使用以下方法: 1. 首先判断这个是否小于2,如果小于2,则不是素数。 2. 然后从2开始,一直到这个的平方根,判断这个是否能被这些整除,如果能被整除,则不是素数。 3. 如果这个不能被2到平方根之间的任何整除,则是素数。 例如,判断n是否为素数,可以使用以下代码: function isPrime(n) { if (n < 2) { return false; } for (var i = 2; i <= Math.sqrt(n); i++) { if (n % i === ) { return false; } } return true; } 使用方法: isPrime(5); // true isPrime(10); // false ### 回答2: 判断一个数是否为素数,可以考虑用以下方法: 1. 判断目标是否大于等于2,因为2是最小的素数。 2. 遍历从2到该的平方根之间的所有整,并依次判断目标是否能够被这些整整除。 3. 如果在遍历发现目标能被整除,则该不是素数;否则,该素数。 如下是一个算法实现: function isPrime(num) { // 判断目标是否大于等于2 if (num < 2) { return false; } // 遍历从2到该的平方根之间的所有整 for (let i = 2; i <= Math.sqrt(num); i++) { // 判断是否能够被整除 if (num % i === 0) { return false; } } // 完成遍历,说明该素数 return true; } 该方法可以有效地判断目标是否为素数,但是在处理大时会比较缓慢,因为需要遍历很多整。如果需要优化运算速度,可以考虑使用其他高效的算法。 ### 回答3: 判断一个数是否为素数学题的经典问题。在JavaScript,我们可以采用以下两种方法来判断一个数是否为素数。 1. 素数的定义是只有1和自身两个正约。因此,判断一个数是否为素数,我们可以从2开始到该减1,逐个除以整,如果整除则不是素数。如果一直到当前判断小于原平方根后,都没有整除,则该素数。具体实现代码如下: ``` function isPrime(num){ if(num<2) return false; //从 2 到 num 开始,判断能否整除num for(let i=2;i<=Math.sqrt(num);i++){ if(num%i==0) return false; } return true; } console.log(isPrime(5));//true console.log(isPrime(14));//false ``` 2. 判断一个数是否为素数,还可以采用欧拉筛法来实现。欧拉筛法是生成素数的一种高效算法,具体实现代码如下: ``` function getPrimes(num){ const isPrime = new Array(num+1).fill(true); const primes = []; for(let i=2;i<=num;i++){ if(isPrime[i]){ primes.push(i); for(let j=i*i;j<=num;j+=i){ isPrime[j] = false; } } } return primes; } console.log(getPrimes(20));//[2, 3, 5, 7, 11, 13, 17, 19] ``` 以上就是判断一个数是否为素数的两种方法,希望对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小单

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值