js判断一个数是否为完数
时间: 2023-05-26 20:02:39 浏览: 89
一个数如果恰好等于它的因子之和,则这个数称为完数。例如,6就是一个完数,因为6的因子有1、2、3,而1+2+3=6。
下面是判断一个数是否为完数的JavaScript代码:
```
function isPerfectNumber(num) {
let sum = 0;
for (let i = 1; i < num; i++) {
if (num % i === 0) {
sum += i;
}
}
return sum === num;
}
// 示例
console.log(isPerfectNumber(6)); // true
console.log(isPerfectNumber(28)); // true
console.log(isPerfectNumber(496)); // true
console.log(isPerfectNumber(8128)); // true
console.log(isPerfectNumber(10)); // false
console.log(isPerfectNumber(12)); // false
```
该函数接受一个整数参数num,然后遍历从1到num-1的所有整数,如果这个整数是num的因子,则将其加入到sum中。最后,如果sum等于num,则返回true,否则返回false。
相关问题
用JS输入一个数,判断这个数是不是完数 完数:一个数恰好等于它的除了它本身之外所有因数之和,这个数就称为“完数”。 例如:6的因数有:1、2、3;由于6=1+2+3,所以6是完数。
在JavaScript中,你可以通过以下步骤来编写一个函数来判断一个数是否是完数:
1. 创建一个名为`isPerfectNumber`的函数,接收一个参数`num`表示需要检查的数字。
2. 初始化一个变量`sums`用于存储除自身外的所有因子之和,初始值设为0。
3. 使用一个for循环从1遍历到`num - 1`,检查当前数`i`是否是`num`的因数(即`num % i === 0`)。如果是,则将`i`加入`sums`。
4. 检查循环结束后`sums`是否等于`num`。如果相等,说明`num`是完数,返回true;否则,返回false。
下面是一个简单的示例代码:
```javascript
function isPerfectNumber(num) {
let sums = 0;
for (let i = 1; i < num; i++) {
if (num % i === 0) {
sums += i;
}
}
return sums === num && num !== 1; // 因为1不是完数,所以排除掉它
}
// 测试例子
console.log(isPerfectNumber(6)); // 输出 true
console.log(isPerfectNumber(8)); // 输出 false
```
用JS的for循环输入一个数,判断这个数是不是完数 完数:一个数恰好等于它的除了它本身之外所有因数之和,这个数就称为“完数”。 例如:6的因数有:1、2、3;由于6=1+2+3,所以6是完数。
在JavaScript中,你可以使用for循环遍历一个数的所有因子,并检查它们是否相加等于原数。下面是一个简单的函数来判断一个数字是否是完数:
```javascript
function isPerfectNumber(num) {
if (num <= 1) { // 数字小于等于1不是完数
return false;
}
let sum = 1; // 初始化因数和为1,因为每个数都是它自身的因子
for (let i = 2; i * i <= num; i++) { // 遍历从2到sqrt(num),如果i是num的因子,那么i和num/i也是因子
if (num % i === 0) {
sum += i; // 如果找到因子,加入总和
if (i !== num / i) { // 如果这不是另一个因子(防止重复计算)
sum += num / i;
}
}
}
// 判断sum是否等于num
return sum === num;
}
// 使用示例
console.log(isPerfectNumber(6)); // 输出 true,因为6是完数
console.log(isPerfectNumber(28)); // 输出 true,因为28 = 1 + 2 + 4 + 7 + 14
```
阅读全文