被上了一课,最简单的求素数和九九乘法表竟然一时半会写不出来,啊: 首先写一个简单的判断是否是素数的的代码: 思想:如果这个数可以被不是本身的数整除就不是素数(1先抛开不说)
var nums=8;
var flag=true;
for(var i=0;i<=nums/2;i++)//实际上不用%从0到nums本身这么多个数,只需要多根方nums就可以了,或者nums/2;
{
if(nums%i==0)
{
//如果nums能被小于nums本身的数整除,说明不是素数
flag=false;
console.log("不是素数");
}
}
if(flag=true)//我这里写成赋值了,结果会达不到效果,我找半天也没发现这个错误,所以以后再写的时候为避免写错,直接写成隐士的,if(flag)
console.log("是素数");
然后求一百以内的素数: 只需要把将才输入的nums改为用一个for循环输入100个值就可以了。
但是这样写结果吗达到效果:
for (var j = 1; j <= 100; j++) {
var nums = j;
var flag = true;
for (var i = 2; i <= nums / 2; i++) {
if (nums % i === 0) {
flag = false;
}
else
{
console.log(nums, "是素数");
}
}
}
正确写法:
for (var j = 1; j <= 100; j++) {
var nums = j;
var flag = true;
for (var i = 2; i <= nums / 2; i++) {
if (nums % i === 0) {
flag = false;
break;
}
}
if(flag==true)
console.log(nums, "是素数");
}
第二次碰见这个题,好家伙,同样的问题又犯了一次:
这次是用argunments来写素数
修改: