用JS编写求出100以内的质数

JavaScript010

用JS编写求出100以内的质数,第1张

// 定义函数,计算是不是质数, 只能被1和自己整除的数

function isPrime(n) {

    if (n <= 3) { return n > 1 }

    if (n % 2 == 0 || n % 3 == 0) { return false }

 

    for (var  i = 5 i * i <= n i += 6) {

        if (n % i == 0 || n % (i + 2) == 0) { 

            return false 

        }

    }

    return true

}

// 测试

console.log(isPrime(2)) // true

console.log(isPrime(3)) // true

console.log(isPrime(4)) // false

console.log(isPrime(5)) // true

运行结果:

// 原理:与比自己小的数相除,如果可以取模为0,表示该数据不为质数

            for (var i = 2 i < 100 i++) {

                var flag = true

                for (var j = 2 j <= i / 2 j++) {

                    if (i % j == 0) {

                        flag = false

                        break

                    }

                }

                if (flag)           // 说明没有全都无法除尽,为质数

                    $('#div').append('<h4>' + i + '</h4>')

            }

            

                <div id="div"></div>

重写了一个,你修改一下吧:

<script language=javascript>

var i,j,s,flag

s=""

for(i=2i<100i++){

flag=true

for(j=2j<ij++){

if(i%j==0)

{

flag=false

}

}

if (flag==true) s=s+i+"; "

}

window.alert("1-100之间的素数为:"+s)

</script>