JavaScript判断输入值是否为素数

       朋友今天出了一道算法,判断回文素数。回文素数每判断出来,出了一堆bug(第一次写博客的萌新瑟瑟发抖),结果就判断了一个素数,咋看其实素数挺简单的,但是执行起来还是有难度,可能是自己还学的不够。

下面就是判断素数的一个方法:

 var repeat = 100;
        var flag = true; 
        if(repeat >= 0) { //判断 如果输入数字大于0 则执行下面判断
                if (repeat == 0 || repeat == 1) //判断输入数值是否为0或者1
                    flag = false; //如果是的则输出false
                else if(repeat == 2) flag = true; //如果输入的是2 则判断为true
                //如果以上两种都不是则进入以下判断,逻辑:如果repeat取余小于repeat的所有数都不为0,证明它除是除不尽的,则是素数
                else{
                    for(var i = 2;i<= Math.sqrt(repeat); i++) { //repeat取余repeat开根号(数学方法)例如输入为100根号5/ 10 20所有的因素都分布在了根号两边,则i取值为10;
                    if(repeat % i == 0) { //如果取余i等于0那就不是素数 直接跳出循环
                        flag = false; 
                        break; 
                    } 
                }
            }
        } 
        else flag = false; //如果零输出为负数,就输出false
        console.log(flag);

现在对于开根号还是了解的不够透彻,算法分析能力有待加强!

萌新第一次发表博客(轻喷)。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值