javascript输出100以内的素数
时间: 2023-05-31 19:19:34 浏览: 164
c代码-编写程序,输出100以内的所有素
### 回答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,这个数就是素数,输出即可。
阅读全文