用函数实现判断num是不是素数
时间: 2024-11-27 15:10:37 浏览: 7
在JavaScript中,可以定义一个函数来检查一个数是否是素数(也称质数)。素数是指大于1的自然数,除了1和它本身以外不再有其他正因数。下面是一个简单的函数实现:
```javascript
function isPrime(num) {
// 避免检查小于等于1的情况,以及偶数(除2外)
if (num <= 1 || (num > 2 && num % 2 === 0)) {
return false;
}
// 只需检查到平方根,因为若存在因子超过sqrt(n),必然有一个小于等于sqrt(n)
for (let i = 3; i * i <= num; i += 2) { // 步长为2,跳过所有偶数
if (num % i === 0) {
return false;
}
}
return true;
}
```
这个函数首先排除小于等于1的数字和偶数(除了2),然后从3开始,每次加2(因为素数只有两个正因数,1和自身,所以不需要考虑奇数倍),检查到数的平方根为止,如果发现能整除,则不是素数。
相关问题
javascript中用函数实现判断num是不是素数
在JavaScript中,我们可以使用一个函数来判断一个数字num是否是素数(质数)。一个素数是指只有1和它本身两个正因数的大于1的自然数。下面是一个简单的函数实现:
```javascript
function isPrime(num) {
// 数字小于2不是素数
if (num < 2) {
return false;
}
// 从2开始到num的平方根遍历,如果能整除则num不是素数
for (let i = 2; i <= Math.sqrt(num); i++) {
if (num % i === 0) {
return false;
}
}
// 如果没找到因子,那么num就是素数
return true;
}
```
这个函数首先检查输入的数字是否小于2,因为小于2的数不是素数。接着,它会循环遍历从2到该数字的平方根的所有数字,如果能被整除,则返回false;如果没有找到整除因子,则说明它是素数,返回true。
javascript中用函数实现判断num是不是素数,多种方法,用console.log
在JavaScript中,我们可以使用函数来判断一个数字num是否为素数(也叫质数),有几种常见的方法:
**方法一:朴素遍历法**
```javascript
function isPrimeNaive(num) {
if (num <= 1) return false; // 0和1不是质数
for (let i = 2; i < num; i++) {
if (num % i === 0) return false;
}
return num > 1; // 如果遍历完都没找到因子,则为质数
}
// 测试
console.log(isPrimeNaive(7)); // 输出:true
```
**方法二:只遍历到 sqrt(num)**
```javascript
function isPrimeSqrt(num) {
if (num <= 1) return false;
for (let i = 2; i * i <= num; i++) {
if (num % i === 0) return false;
}
return true;
}
// 测试
console.log(isPrimeSqrt(13)); // 输出:true
```
**方法三:埃拉托斯特尼筛法(适用于大量素数查找)**
```javascript
function sieveOfEratosthenes(n) {
const primes = [];
for (let i = 2; i <= n; i++) {
primes[i] = true;
}
for (let p = 2; p * p <= n; p++) {
if (primes[p]) {
for (let i = p * p; i <= n; i += p) {
primes[i] = false;
}
}
}
return primes[n] ? 'prime' : 'not prime';
}
// 测试
console.log(sieveOfEratosthenes(17)); // 输出:'prime'
```
阅读全文