JavaScript——输出100以内的质数

JavaScript——输出100以内的质数

使用JavaScript判断100以内素数,素数的概念就是只有1和它本身两个因数的数

思路

 /*
            设一个数m,判断是不是素数
            m除以2~sqrt(m)的数
        */

js

		let m;
        let i;
        for (i = 2; i <= 100; i++) {
            m = true;
            // for (var j = 2; j < i; j++) {
            for (var j = 2; j <= Math.sqrt(i); j++) {
                if (i % j == 0) {
                    m = false;
                    break;
                }

            }
            if (m) {
                console.log(i);
            }
        }

在控制台输出

在这里插入图片描述

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 输出100以内的素数可以使用以下算法: 1. 遍历2到100的所有数字,判断每个数字是否为素数。 2. 判断素数的方法是将该数字依次除以2到该数字的平方根,如果余数都不为0,那么该数字就是素数。 3. 如果一个数字是素数,则将其输出。 具体的JavaScript代码示例如下: for (let i = 2; i <= 100; i++) { let isPrime = true; for (let j = 2; j <= Math.sqrt(i); j++) { if (i % j === 0) { isPrime = false; break; } } if (isPrime) { console.log(i); } } ### 回答2: 素数指的是只能被1和自身整除的自然数,例如2、3、5、7、11等。要输出100以内的素数,就需要编写一个可以筛选出素数的程序。 一种比较简单的方法是使用“筛法”,即从2开始,将其倍数标记为合数,最后剩下的未被标记的数即为素数。具体实现步骤如下: 1. 创建一个数组n,用来存储100以内的数字,初始值都为1,表示都是素数。 2. 从2开始循环遍历数组n,判断当前数字是否为素数: - 如果n[i]为1,说明它是素数,将其所有倍数都标记为合数,即将数组n[j]的值赋为0,其中j=i*i,i+1*i,i+2*i,...... - 如果n[i]为0,说明它是合数,直接跳过。 3. 循环结束后,将所有未被标记为合数的数字输出即可。 具体的javascript代码如下: ```javascript var n = Array(101).fill(1); // 初始化数组n,全部赋值为1(代表是素数) n[0] = n[1] = 0; // 将0和1标记为合数 for (var i = 2; i <= 10; i++) { // 遍历2到10,标记出所有合数 if (n[i] == 1) { // 如果i是素数 for (var j = i * i; j <= 100; j += i) { // 将i的所有倍数都标记为合数 n[j] = 0; } } } for (var k = 2; k <= 100; k++) { // 输出所有未被标记为合数的数 if (n[k] == 1) { console.log(k); } } ``` 以上代码输出结果为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,即100以内的所有素数。 ### 回答3: 素数指的是只能同时被1和它本身整除的数。要输出100以内的素数,可以使用for循环遍历1~100之间的所有数,使用一个判断条件来判断该数是否是素数,如果是素数,就输出该数。 判断一个数是否是素数的方法是,从2开始到这个数的平方根之间遍历,如果在这个范围内有任意一个数可以被整除那么这个数就不是素数。如果在平方根之前没有由数可以整除,那么这个数就是素数。 下面是实现这个功能的代码示例: ``` for(var i=2; i<=100; i++){ var isPrime = true; for(var j=2; j<=Math.sqrt(i); j++){ if(i % j == 0){ isPrime = false; break; } } if(isPrime){ console.log(i); } } ``` 代码中,第一个for循环遍历1~100之间的所有数,第二个for循环判断当前遍历到的数是否是素数。若找到了一个因子,就标记当前数为非素数(isPrime = false)并跳出第二个循环,进入第一个循环的下一个数的判断。 当第二个循环完全执行完毕都没有找到除1和本身以外的因子时,isPrime为true,这个数就是素数,输出即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

玄东林檎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值