JavaScript:使用递归检查数字是否为素数

2024-03-21

我对如何解决这个问题有点困惑。我需要所有素数才能返回 true。如果不返回 false——我看到我的逻辑包括 2 并且返回 0,所以它自动返回 false,因为 2 余数为 0。

  

  function isPrime(num, div = 2) {
      // BASE CASE: 
     
      if(num <= div ) return false; // IF num less than OR equal to  2 RETURN false 
      
      // IF num MOD has a remainder of zero   
         
      if(num % 2 === 0) return false  // RETURN false 
      
      return true; // RETURN true
     
      // RECURSIVE CALL:

      return isPrime(num)
    }

    console.log(isPrime(1)); //-> false
    console.log(isPrime(2)); //-> true
    console.log(isPrime(3)); //-> true
    console.log(isPrime(4)); //-> false

不需要递归。只需测试从 3 到该数字的平方根的所有奇数,将其作为最佳性能的可能因素。

function isPrime(num){
      if(num === 2) return true;
      if(num < 2 || num % 2 === 0) return false;
      for(let i = 3; i * i <= num; i += 2)
          if(num % i === 0) return false;
      return true;
}

如果确实需要使用递归,则可以通过接受一个因子作为第二个参数并在递归时将其增加 2 来实现上述想法。

function isPrime(num, div = 3){
      if(num === 2) return true;
      if(num < 2 || num % 2 === 0)  return false;
      if(div * div > num) return true;
      if(num % div === 0) return false;
      return isPrime(num, div + 2);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript:使用递归检查数字是否为素数 的相关文章

随机推荐

  • css - 显示:表格单元格和固定宽度[重复]

    这个问题在这里已经有答案了 我有一些divs with display table cell样式 我想在其上设置固定宽度divs并在内容不合适时截断其中的文本 HTML div class row div class cell style
  • 如何在 Postgres 9.5 中替换多个特殊字符

    我有一个包含可能包含特殊字符的名称列表的表 id name 1 Joh n 2 J rgen 3 Janna 4 dyr 是否有一个函数可以将每个字符替换为另一个特定字符 不一定是无重音的 像这样的事情 SELECT id function
  • Android 发现死锁

    当我运行 Android 服务时 有时会收到 ANR 我怀疑这是因为僵局而发生的 有没有一种简单的方法可以监控 Android 或 Eclipse 中的死锁 例如显示哪个线程持有哪个锁等的实用程序 有没有办法通过查看 traces txt
  • IntelliSense:命名空间“MSXML2”在 VS2012 中没有成员“DOMDocument”

    我正在尝试编译我继承的项目 然后遇到此错误 以下是一些相关代码 include
  • 如何将 JQuery 脚本添加到单个 WordPress 页面中?

    我想将 JQuery 脚本添加到单个 WordPress 页面中 但我不知道如何操作 我想注入的脚本示例 当以纯 HTML 形式注入时 此代码可以正常工作 但如何对 Wordpress 执行相同操作呢 我个人认为将 JavaScript 添
  • div CSS 上的右角功能区

    我正在尝试在 div 中制作一条角丝带 它无处不在 我希望它看起来整洁漂亮 但它覆盖了 div 坐得不太好 The ribbons corner ribbon width 100px background e43 position abso
  • 大型 Org-mode 文件中的光标移动缓慢以及“org-do-latex-and-lated”函数

    在一个几乎有 5000 行的 org 文件中 滚动速度慢得难以忍受 除非我转动font lock mode离开 检查发生了什么profiler 减速的主要原因是函数org do latex and related 定义于org el 似乎它
  • 如何使用 wlst 更新应用程序

    从控制台如果 1 要更新应用程序 1 所做的是 1 单击部署 2 选择应用程序名称并单击更新选项 3 这里他可能会改变 i Source Path ii Deployment Plan 现在 在我的应用程序中没有指定计划路径 因此要更新应用
  • Spring boot打包后找不到资源文件

    我使用 Spring boot maven 插件将应用程序打包为 jar 文件 可以找到资源文件直接在Intellij IDEA中运行 但之后找不到资源文件 显示错误为 java io FileNotFoundException 类路径资源
  • 修改清单文件 Win32 Visual Studio 2022

    如何在 Visual Studio 2022 中 修改 生成 Win32 应用程序的程序集清单文件 项目属性 gt Win32 资源 gt 清单路径设置为 gt 使用默认设置嵌入清单 我可以将其设置为使用自定义清单 但我想要做的是获取具有默
  • 如何在 DIV 元素上合成浏览器单击事件?

    通过按钮 我可以调用click 方法来生成点击 然而 DIV 并非在所有浏览器上都具有此方法 但我可以将点击事件侦听器附加到它们 通过设置 onclick 或添加事件监听器 有什么方法可以让我以编程方式 合成 对此类元素的点击 但是不使用
  • 如何将字符串转换为浮点数组?

    您将如何转换字符串 比方说 string Numbers 0 3 5 7 9 8 6 2 0 54 6 3 转换为浮点数组 例如 float Numbers 6 0 3 5 7 9 8 6 2 0 54 6 3 我会使用来自的数据结构和算法
  • c# OCR无法识别数字(tesseract 2)

    I m trying to extract digits from the following 它失败了 我得到了 作为回报 我正在使用 google 的 tesseract 2 使用 C 开源 c 包装器 现在我想知道 这个图像是否太糟糕
  • 如何检查for循环内的唯一性?

    有没有办法检查切片 映射是否存在值 我想为切片添加一个值only如果是的话not存在于切片中 这可行 但看起来很冗长 有一个更好的方法吗 orgSlice int 1 2 3 newSlice int newInt 2 newSlice a
  • Webpack babel es6 给我错误,react-router 1.0“找不到模块”?

    我在使用react router时遇到以下错误 它所引用的错误看起来像是在我的应用程序代码之外 但在react router库本身中 ERROR in react router lib Router js Module not found
  • 在Android中查找包含View的Window

    我找不到获得参考的方法Window包含任意Viewv 我发现获取窗口令牌 http developer android com reference android view View html getWindowToken 但我不知道如何使
  • Android BottomNavigationView 与闪屏返回堆栈问题

    所以我设置了我的BottomNavigationView like here https youtu be Covu3fPA1nQ 使用导航组件库 一切正常 每个选项卡都可以保留其后堆栈 但是 如果我添加一个启动屏幕 Fragment an
  • 如何管理应用程序工厂模式中的额外模块?

    我正在使用带有应用程序工厂模式的烧瓶 我确实知道应用程序工厂模式仅在工厂函数中管理配置对象 如下面的代码所示 def create app config app config from object config sentry init a
  • 无法在 Desktop 中为 Compose 设计 UI 布局

    我正在为基于的应用程序开发 UI 布局为桌面撰写 https www jetbrains com lp compose mpp 它由几个复选框组成 但里面没有任何功能为桌面撰写 https github com JetBrains comp
  • JavaScript:使用递归检查数字是否为素数

    我对如何解决这个问题有点困惑 我需要所有素数才能返回 true 如果不返回 false 我看到我的逻辑包括 2 并且返回 0 所以它自动返回 false 因为 2 余数为 0 function isPrime num div 2 BASE