除了Python,其他编程语言中如何实现求1000以内的所有完数?
时间: 2024-10-23 13:05:25 浏览: 9
在其他编程语言中实现求1000以内的所有完数,可以用类似的方法,以下是几种常见语言的示例:
### Java
```java
public class PerfectNumbers {
public static void main(String[] args) {
for (int i = 2; i < 1000; ++i) {
int sum = 0;
for (int j = 1; j * j <= i; ++j) {
if (i % j == 0) {
sum += j;
if (j != i / j) { // 处理因数不重复的情况
sum += i / j;
}
}
}
if (sum == i) {
System.out.println(i + " is a perfect number.");
}
}
}
}
```
### C++
```cpp
#include <iostream>
using namespace std;
bool isPerfect(int num) {
int sum = 0;
for (int i = 1; i * i <= num; ++i) {
if (num % i == 0) {
sum += i;
if (i != num / i)
sum += num / i;
}
}
return sum == num;
}
int main() {
for (int i = 2; i < 1000; ++i) {
if (isPerfect(i))
cout << i << " is a perfect number.\n";
}
return 0;
}
```
### JavaScript
```javascript
function findPerfectNumbers(n) {
for (let i = 2; i < n; i++) {
let sum = 0;
for (let j = 1; j * j <= i; j++) {
if (i % j === 0) {
sum += j;
if (j !== i / j) {
sum += i / j;
}
}
}
if (sum === i) {
console.log(i + " is a perfect number.");
}
}
}
findPerfectNumbers(1000);
```
### Python(已经给出过,这里不再赘述)
每种语言的语法有所不同,但核心逻辑是一样的:遍历每个数,检查它的因子之和是否等于该数本身。
阅读全文