用原生JS判断素(质)数,并找出100~1000之间的所有素(质)数
素数:又称质数,即“大于1,且只能被1和它本身整除的数”
步骤构思:
1、for遍历循环找其他约数
2、if设置满足条件(计数器从2开始,不包括它本身)有则中断输出
需求一:判断素(质)数
function primeNum(num) { // 声明命名函数(形参)
var flag = true; // 变量储存=条件为真
for (var i = 2; i < num; i++) { // for设置循环体,遍历是否存在其他约数(素数:从2开始只能被1和自身整除)
if (num % i === 0) {
flag = false
break // 存在则终止执行并返回输出
}
}
return flag // 返回该变量的真假值
}
var values = primeNum(9) // 用数字9来测试
console.log(values); // false
需求二:找出100~1000之间的所有素(质)数
var primeNum = [] // 该区间所有素数的集合就是一个数组
var i = 0;
var count = 0; // 计算素数的个数
for (i = 100; i <= 1000; i++) {
var j = 0;
for (j = 2; j < i; j++) { // 素数需条件"大于1,且只能被1和它本身整除的数"
if (i % j === 0) { // 能被其他数整除则为非质数,终止遍历
break;
}
}
if (j >= i) { // !JavaScript没有"块级作用域",变量j在for循环赋值结束后仍存在于"外部环境"!
count++; // 计算素数的个数
primeNum.push(i) // 累计追加的素数
}
}
console.log('共有素数' + count + '个');
console.log(primeNum); // 输出目标结果数组
作者:MaricoCheung
出处:http://www.cnblogs.com/MaricoCheung/
——有心人做有心事哦,晚安EmilyChen!
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。