完数计算java完数计算
时间: 2024-10-24 21:12:10 浏览: 25
Java找出1000以内的所有完数
5星 · 资源好评率100%
在Java中,完数是指一个整数的所有真因数(除了自身以外的因子)加起来恰好等于该数本身。例如,6是一个完数,因为它的真因数有1、2、3,它们相加等于6。下面是一个简单的Java函数,用于检查并找出某个范围内的所有完数:
```java
public class PerfectNumbers {
public static void main(String[] args) {
for (int i = 1; i <= 10000; i++) { // 可以根据需要调整范围
if (isPerfectNumber(i)) {
System.out.println("Number " + i + " is a perfect number.");
}
}
}
// 检查一个数是否是完数
public static boolean isPerfectNumber(int num) {
int sum = 1;
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
sum += i; // 如果i是因子,则加入总和
if (i != num / i) { // 如果还有另一个因子,如num / i
sum += num / i; // 加上它
}
}
}
return sum == num && num > 1; // 如果sum等于num并且num大于1,则是完美数
}
}
```
在这个程序中,`isPerfectNumber`函数遍历从2到√n的数,判断它们是否能整除给定的`num`。如果能,就将它们加到`sum`中,并考虑是否存在另一个因子(即num/i)。最后,如果`sum`等于`num`且`num`大于1,说明`num`是一个完数。
阅读全文