首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

js 求1-100的素数

在JavaScript中,求1到100之间的素数(质数)可以通过编写一个函数来实现。素数是指只能被1和它本身整除的自然数。以下是一个示例代码,用于找出1到100之间的所有素数:

代码语言:txt
复制
function isPrime(num) {
    if (num <= 1) return false; // 1及以下的数不是素数
    if (num === 2) return true; // 2是唯一的偶数素数
    if (num % 2 === 0) return false; // 排除其他偶数

    const sqrt = Math.sqrt(num);
    for (let i = 3; i <= sqrt; i += 2) { // 只需检查到平方根,且只检查奇数
        if (num % i === 0) return false;
    }
    return true;
}

const primes = [];
for (let i = 1; i <= 100; i++) {
    if (isPrime(i)) {
        primes.push(i);
    }
}

console.log(primes);

解释:

  1. isPrime 函数
    • 输入:一个整数 num
    • 输出:如果 num 是素数,返回 true;否则返回 false
    • 逻辑
      • 首先排除小于等于1的数,因为它们不是素数。
      • 2是唯一的偶数素数,直接返回 true
      • 排除其他偶数,因为它们都可以被2整除。
      • 只需检查到 num 的平方根,因为如果 num 有因数,大于平方根的因数必然对应一个小于平方根的因数。
      • 只检查奇数,因为偶数已经在前面排除了。
  • 主循环
    • 遍历1到100之间的所有整数。
    • 对每个数调用 isPrime 函数,如果是素数,则将其添加到 primes 数组中。
  • 输出
    • 最后,通过 console.log 输出所有找到的素数。

运行结果:

代码语言:txt
复制
[
   2,  3,  5,  7, 11, 13, 17, 19, 23, 29,
  31, 37, 41, 43, 47, 53, 59, 61, 67, 71,
  73, 79, 83, 89, 97
]

应用场景:

  • 数学计算:素数在数论、密码学等领域有广泛应用。
  • 算法优化:寻找素数是许多算法的基础,如埃拉托斯特尼筛法(Sieve of Eratosthenes)。
  • 编程练习:这是学习编程和算法的经典问题,有助于提高逻辑思维和编程能力。

注意事项:

  • 对于更大的范围,可以考虑使用更高效的算法,如埃拉托斯特尼筛法,以减少计算时间。
  • 在实际应用中,素数的生成和使用需要考虑性能和内存优化,尤其是在处理非常大的数时。

希望这个示例能帮助你理解如何在JavaScript中找出1到100之间的素数。如果有其他问题或需要进一步的解释,请随时提问!

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

求1000000以内的素数

素数 质数(Prime number),又称素数,指在大于1的自然数中,除了1和该数自身外,无法被其他自然数整除的数(也可定义为只有1与该数本身两个正因数的数)。...大于1的自然数若不是素数,则称之为合数。 2....求1000000以内的素数 方法一 遍历法 #include #include #include #define NUM 1000000 using...\n", duration); return 0; } 分析:在上面的基础上,首先我们可以确定除了2之外的偶数都可以排除,同时如果执行到某个数的平方根(邻近的整数)都不能被其整除,则其后的数字都不能被其整除...\n", duration); return 0; } 分析:筛法是指假设所有数都为素数,然后遍历,如果其为素数,则其倍数皆为和数,遍历所有数即可。

1.4K10
  • 求素数个数

    题目比较简单,求小于n的素数个数,素数也叫质数,具有以下特点: 正整数 只能被1和本身整除 1既不是素数也不是合数,所以最小的素数是2 根据上面的特点,我们还可以推断出: 除了2,其它的素数都是奇数 依据这一点...这个算法中,判断一个奇数i是不是素数,是通过试除小于等于√i的奇数来实现,这会有重复计算的场景,比如3和9,5和15,根据素数和合数的特点,可以推断出任意一个合数都可以分解成几个素数的乘机,所以我们可以通过试除小于等于...√i的素数来判断i是不是素数,素数相对于奇数,无疑减少了很多判断次数。...,筛选法的策略是将素数的倍数全部筛掉,剩下的就是素数了,下图很生动的体现了筛选的过程: ?...筛选的过程是先筛掉非素数,针对本文的题目,每筛掉一个,素数数量-1即可,上面说过素数的一个特点,除了2,其它的素数都是奇数,所以我们只需在奇数范围内筛选就可以了。

    1.3K00

    C语言求100~200的素数​

    例17:C语言编程实现输出100~200之间的素数。 解题思路:这个问题的算法很简单,在上一节的基础上,只要在外层增加一个for循环作为限制100-200之间就可以了。...源代码演示: #include//头文件  #include//为了引入sqrt求平方根函数  int main()//主函数  {   int number,i;//...=0)//如果求余不等于0,则为素数      printf("%d\n",number);//输出素数     }    return 0;//函数返回值为0  } 编译运行结果如下: 101 103...有了上一节的案例学习,相信读者对C语言实现求素数,根据常识,偶数不是素数,所以不必对偶数进行判定,只对奇数进行判定就可以。所以循环变量每次增值2。...C语言求100~200的素数 更多案例可以go微信公众号:C语言入门到精通,作者:闫小林

    3.6K3228

    求素数(暴力枚举)-HDU 3823

    Sample Input 2 2 4 3 6 Sample Output Case 1: 1 Case 2: -1 题意: 即求一个数,能使a,b与之相加后,成为素数,并且a与b之间没有其他的素数。...做法: 该题的关键是将20000000之前的素数打表,然后求其每个之间的差值,相等的存放到同一个数组中。 关于枚举: 如果手工都很容易算出来的东西,有理由相信写成程序以后也能很快得到结果。...枚举界法的特点是比较单纯,往往容易写出程序,也容易证明算法的正确性和分析算法的时间复杂度,可以解决一些规模很小的问題。 它的缺点是速度慢,当枚举量很大的时候运行速度无法忍受。...memset(is_prime, 1, sizeof(is_prime)); /*计算开方值*/ /* 开根号法:对大于2的数N求平方根得到S,如果N能被2-S之间的数整除...,那么N不是质数 */ int s = sqrt((double)MAX_VALUE) + 1; /*素数的计算 双重循环:2,3,4,5...s

    71840

    用C语言求n以内的素数

    素数的概念: 素数又叫做质数(prime number),指的是在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数,否则称为合数。合数除了1和这个数本身,还能被其他正整数整除。...思路 首先定义一个n用于获取用户输入的n值,然后用一个for循环一个个判断是否为素数,在这里需要立一个flag用于判断是否为素数,然后再用一个for循环大于2且小于第一个for循环的循环变量,如果i在...2到i里有求余为0的数,则前面立flag为0,该数不为素数。...,这样才能保证每次判断这个数是不是素数时,flag的初始值都为1; 2.在进阶版中直接从3开始,每次加2,这样可以排除偶数,减少电脑的运算时间,提高运算速率,但是这样就会漏算了一个2,所以要在前面加一个判断...——n是否大于二,如果大于二就要先输出一个二,因为二也是素数。

    1.9K40
    领券