质数的定义

质数(Prime number),又称素数,指在大于1的自然数中,除了1和该数自身外,无法被其他自然数整除的数(也可定义为只有1与该数本身两个正因数的数)。大于1的自然数若不是素数,则称之为合数(也称为合成数)。

Js判定

验证是否为大于1 的自然数

function validate (num) {

return /^\d+$/.test (num) && num > 1

}

方法一: 根据质数定义判定

function isPrime(num) {

if (validate(num)) {

for (let i = 2; i < num; i++) {

if (num % i == 0) {

return false

}

}

return true

}

return false

}

方法二: 通过合数判定

方法一直观明了,但是运算量过大。通过定义可知大于1的自然数不是质数就是合数,因此可以通过判断合数来进行优化。

假设num是个合数,它必然是两数之积,即num = a*b,且a,b均为不为1的正整数,a,b要么一大一小,要么相等。当a为最小值2时,b有最大值,即合数的最大因数为num/2,最小因数为2。换句话说一个数在2到num/2之间范围内有因数为合数,没因数为素数。

function isPrime(num) {

if (validate(num)) {

for (let i = 2; i <= num/2; i++) {

if (num % i == 0) {

return false

}

}

return true

}

return false

}

上面的方式是通过最大因数判断,还可以继续优化减少运算。

合数num为它的两个平方根之积,即num =

*

,num=a*b,当a,b不相等时,一个大于

,一个小于

,即合数num较小的因数范围为2到

之间。

function isPrime(num) {

if (validate(num)) {

for (let i = 2; i <= Math.sqrt(num); i++) {

if (num % i == 0) {

return false

}

}

return true

}

return false

}

用js代码判断质数_Js关于质数的判定相关推荐

  1. js判断PC端或是移动端、判断是不是微信浏览器、js代码判断浏览器种类IE、FF、Opera、Safari、chrome及版本

    ** js判断PC端或是移动端 ** 第一种 window.location.href = /Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator ...

  2. HTML判断客户端,JS代码判断客户端是手机访问还是PC电脑访问

    这篇文章主要为大家详细介绍了JS代码判断客户端是手机访问还是PC电脑访问,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,有需要的朋友可以收藏方便以后借鉴. 前面给大家讲了<PHP判断判访问设 ...

  3. 用js代码判断质数_JavaScript判断数字是否为质数的方法汇总

    前言 今天看到一个题目,让判断一个数字是否为质数.看上去好像不难.因此,我决定实现一下. DOM结构 计算500以内的质数并输出 $(function(){ $("#submit" ...

  4. js代码判断浏览器种类IE、FF、Opera、Safari、chrome及版本

    因为ie10-ie11的版本问题,不再支持document.all判断,所以ie判断函数要重新写了 function isIE() { //ie? if(!!window.ActiveXObject ...

  5. php判断是否safari,js代码判断浏览器种类IE、FF、Opera、Safari、chrome及版本_javascript技巧...

    因为ie10-ie11的版本问题,不再支持document.all判断,所以ie判断函数要重新写了 function isIE() { //ie? if (!!window.ActiveXObject ...

  6. 用js代码判断质数_在 JS 中判断,并不是都要用 ===

    我们知道现在的开发人员都使用 === 来代替 ==,为什么呢? 我在网上看到的大多数教程都认为,要预测 JavaScript 强制转换是如何工作这太复杂了,因此建议总是使用===. 这些都导致许多程序 ...

  7. 利用JS代码判断火绒安全是否在用户本地运行

    有言在先 请勿利用此功能用于任何非法用途,本功能非火绒安全漏洞 此功能主要的应用场景是捆绑下崽软件,如果是火绒用户就给下载纯净版或者无法被探测到的捆绑软件,避免软件阻断影响推广效果.软件安装需要征得用 ...

  8. 客户端加JS代码判断复选框是否全选的代码

     客户端代码: <body id=main>     <form id="form1" runat="server">     < ...

  9. js代码判断身份证号合法性

    /** * 检验18位身份证号码(15位号码可以只检测生日是否正确即可) * @author wolfchen * @param cid 18为的身份证号码 * @return Boolean 是否合 ...

最新文章

  1. Hololens2-OpenXR开发(一)-入门
  2. App上架应用市场,如何攻破安全过检难题
  3. javascript之判断专题
  4. Android用省略号替换“...”
  5. POJ1523:SPF(无向连通图求割点)
  6. (八)路径(面包屑导航)分页标签和徽章组件
  7. 前端如何玩转虚拟机_想运行虚拟机,用win10自带的Hyper-V即可,不用安装其它软件...
  8. java使用爬虫_Java中如何使用爬虫进行解析?
  9. WordPress 插件开发实例 – 详细注释的 Widget 开发例子
  10. VUE实现输入完当前input后自动跳到下一个input
  11. python计算器界面设计_Python 计算器界面设计
  12. KeyPass密码管理软件使用说明
  13. 【Unity3D进阶4-12】Unity3D 对话系统
  14. hibernate官网
  15. flash乱码解决方案
  16. 前端面试必考的「 Webpack详解 」都在这了
  17. POI删除空白行 代码和其他用法(将会持续更新)
  18. 什么时候真正体会到了,磨刀不误砍柴工?
  19. video sematic segmentation视频语义分割方向相关论文罗列+数据集下载链接
  20. 视频教程-Unity5入门及进阶项目实战 星际迷航-Unity3D

热门文章

  1. 【数据结构】先序遍历+中序遍历创建二叉树(C++实现)
  2. 基于FPGA的单目内窥镜定位系统设计(上)
  3. L01n matlab,matlab常用语法
  4. View系列 (三) — Measure 流程详解
  5. Android6.0 ios,意超越iOS9!谷歌寄希望于Android6.0系统
  6. 同态算法FHEW笔记
  7. 拿到阿里,网易游戏,腾讯,smartx的offer的过程 (转)
  8. AndServer浅显使用
  9. JS十进制转换16进制
  10. 第一节:服务注册与服务发现