用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
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值