本文详解JavaScript如何高效计算指定范围内的质数。通过介绍开方优化算法,大幅减少运算次数。提供完整源代码及在线HTML/CSS/JavaScript代码运行工具,方便用户直接测试。同时推荐在线分解质因数计算器,助力JavaScript数学运算与算法学习。
JavaScript计算指定范围质数的实现与优化
本文介绍使用JavaScript计算特定区间内质数的方法,供读者参考。
质数(亦称素数)有无限多个。其定义为大于1的自然数中,仅能被1和自身整除的数。
优化算法:判断质数时,只需检查该数是否能被小于其平方根的所有整数整除。此方法显著减少运算量,提升效率。该算法思路源自《Java求质数的几种常用算法》。
以下是使用JavaScript计算指定范围质数的完整源代码:
源代码与在线测试
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>JavaScript获取指定范围内的质数</title>
<style>
body{word-break:break-all;word-wrap:break-word}
</style>
</head>
<body>
<script>
function isPrimeNumber(v) {//判断是否为质数
var s = Math.floor(Math.sqrt(v));
for (var i = s; i > 1; i--) if (v % i == 0) return false;
return true;
}
function getPrimeNumber(min, max) {//获取指定范围内的质数集合
if (min > max) { var t = max; max = min; min = t;}
var rst = [];
for (var i = Math.max(2, min) ; i <= max; i++) if (isPrimeNumber(i)) rst.push(i);
return rst;
}
var min = parseInt(prompt('请输入最小数字')) || 0;
var max = parseInt(prompt('请输入最大数字')) || 0;
document.write(min+'~'+max+'范围内质数有:'+getPrimeNumber(min, max));
</script>
</body>
</html>
可使用在线HTML/CSS/JavaScript代码运行工具(http://tools.jb51.net/code/HtmlJsRun)对代码进行测试,运行结果如下:



此外,推荐另一款功能相似的在线工具供参考:
在线分解质因数计算器: http://tools.jb51.net/jisuanqi/factor_calc
更多关于JavaScript的内容,可查看本站专题:《JavaScript数学运算用法总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript数组操作技巧总结》、《JavaScript事件相关操作与技巧大全》、《JavaScript操作DOM技巧总结》及《JavaScript字符与字符串操作技巧总结》。
希望本文内容对JavaScript程序设计有所帮助。