使用js 求1-1000的完数(如果一个数恰好等于除它自身之外的所有因子之和,那这个数就是完数)
时间: 2025-03-28 09:10:13 浏览: 26
要用 JavaScript 来求解 1 到 1000 范围内的所有完数,可以按照以下步骤实现:
### 完整代码示例
```javascript
function findPerfectNumbers(limit) {
let perfectNumbers = [];
// 遍历从1到limit之间的每个数字
for (let num = 1; num <= limit; num++) {
let sumOfFactors = 0;
// 找出当前数字num的所有因数并计算它们的和
for (let i = 1; i < num; i++) {
if (num % i === 0) { // 如果i是num的一个因数
sumOfFactors += i;
}
}
// 如果因数之和等于该数字本身,则它是完数
if (sumOfFactors === num && num !== 0) {
perfectNumbers.push(num);
}
}
return perfectNumbers;
}
// 查找范围1至1000内的完数
const result = findPerfectNumbers(1000);
console.log("1 至 1000 内的完数有:", result);
```
运行以上程序将返回结果 `[6, 28]`。
---
**解释每一步逻辑**
1. **外层循环遍历数字**
- 我们需要检查每一个数字 `num` 是否满足条件。
2. **内层循环寻找因子**
- 对于给定的数字 `num`,我们找出它的所有小于自身的正整数因子,并累加这些因子值。
3. **判断是否为完数**
- 当且仅当某数字所有的因子(不包括自身)相加之和正好等于该数字本身时,才将其加入到结果数组中。
4. **打印最终结果**
- 最终输出的是在指定范围内找到的所有符合条件的“完美”数值列表。
---
### 注意事项:
- 因为此算法会尝试对较大的数字逐一检查其因子情况,所以随着输入上限的增长效率可能会降低。但对于像 "1 到 1000" 这样的小规模数据来说完全够用了!
阅读全文
相关推荐









