求程序的详细理解说明

来源:百度知道 编辑:UC知道 时间:2024/06/08 15:22:22
function isprime(k)
{var i,flag=1;
for(i=2;i<=Math.sqrt(k);i++)
if(k%i==0) flag=0;
return flag;
}
这段求素数的函数,我始终不明白为什么要加flag变量,为什么要在后面加return flag,返回flag有什么用呢,请高手指点,希望能得到详细的解释

1.程序的逻辑有些多余了:
if(k%i==0) 时就直接可以return 0了;

2.第2个问题:
i<=Math.sqrt(k)这步就会使每次循环都要重新计算k的平方根,效率很低,用一个变量存储就可以了。

flag是返回给调用的语句 的,你的 程序贴的不完整

这是一个函数,他的功能是判断一个数是不是素数的,
如果是素数则返回1,不是素数返回0;
所以flag是这个数是不是素数的标志。因此必须有,只有通过flag的值,才知道次数是不是素数

flag是标志位,如果这个数字不是素数就返回0,反之返回1。