生成指定数字以内的质数

JavaScriptJavaScriptBeginner
立即练习

This tutorial is from open-source community. Access the source code

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在这个实验中,我们将深入探索JavaScript编程的迷人世界。本实验旨在帮助你获得使用JavaScript解决编程问题的实践经验。你将学习如何使用埃拉托斯特尼筛法(Sieve of Eratosthenes algorithm)生成指定数字以内的质数。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("`JavaScript`")) -.-> javascript/BasicConceptsGroup(["`Basic Concepts`"]) javascript(("`JavaScript`")) -.-> javascript/AdvancedConceptsGroup(["`Advanced Concepts`"]) javascript/BasicConceptsGroup -.-> javascript/variables("`Variables`") javascript/BasicConceptsGroup -.-> javascript/data_types("`Data Types`") javascript/BasicConceptsGroup -.-> javascript/arith_ops("`Arithmetic Operators`") javascript/BasicConceptsGroup -.-> javascript/comp_ops("`Comparison Operators`") javascript/AdvancedConceptsGroup -.-> javascript/higher_funcs("`Higher-Order Functions`") subgraph Lab Skills javascript/variables -.-> lab-28556{{"`生成指定数字以内的质数`"}} javascript/data_types -.-> lab-28556{{"`生成指定数字以内的质数`"}} javascript/arith_ops -.-> lab-28556{{"`生成指定数字以内的质数`"}} javascript/comp_ops -.-> lab-28556{{"`生成指定数字以内的质数`"}} javascript/higher_funcs -.-> lab-28556{{"`生成指定数字以内的质数`"}} end

使用埃拉托斯特尼筛法生成质数

要使用埃拉托斯特尼筛法生成指定数字以内的质数,请遵循以下步骤:

  1. 打开终端/SSH并输入node以开始练习编码。
  2. 创建一个包含从2到指定数字的数组。
  3. 使用Array.prototype.filter()过滤掉能被从2到所提供数字的平方根之间的任何数字整除的值。
  4. 返回包含质数的结果数组。

以下是生成指定数字以内质数的JavaScript代码:

const generatePrimes = (num) => {
  let arr = Array.from({ length: num - 1 }).map((x, i) => i + 2),
    sqrt = Math.floor(Math.sqrt(num)),
    numsTillSqrt = Array.from({ length: sqrt - 1 }).map((x, i) => i + 2);
  numsTillSqrt.forEach(
    (x) => (arr = arr.filter((y) => y % x !== 0 || y === x))
  );
  return arr;
};

你可以通过将所需数字作为参数传递来调用函数generatePrimes()。例如:

generatePrimes(10); // [2, 3, 5, 7]

总结

恭喜你!你已经完成了“生成指定数字以内的质数”实验。你可以在LabEx中练习更多实验来提升你的技能。

您可能感兴趣的其他 JavaScript 教程