用Java、打印输出1000以内的完全数。所谓完全数,又称“完数”,这个数等于其因子(不包括本身)之和。例如6的因子是1、2、3,而6=1+2+3,因此6就是完全数。
时间: 2024-10-27 10:03:27 浏览: 18
java程序判断输入数据是否为完全数
5星 · 资源好评率100%
在Java中,我们可以编写一个简单的程序来找出1000以内的完全数。下面是一个示例代码:
```java
public class PerfectNumber {
public static void main(String[] args) {
for (int i = 1; i <= 1000; i++) {
if (isPerfect(i)) {
System.out.println(i + " 是1000以内的完全数,它的因子和为:" + sumOfFactors(i));
}
}
}
// 检查一个数是否是完全数
public static boolean isPerfect(int num) {
int sum = 1;
for (int j = 2; j * j <= num; j++) { // 只需要检查到num的平方根即可
if (num % j == 0) {
sum += j; // 如果j是因子,则加到总和中
if (j != num / j) { // 如果j不是num除以j的结果,说明还有一个因子
sum += num / j;
}
}
}
return sum == num && num != 1; // 如果sum等于num,且num不等于1,那么它是完全数
}
// 计算给定数的所有因子之和
public static int sumOfFactors(int num) {
return num;
} // 这里假设我们已经通过isPerfect函数验证了num是完全数,所以直接返回num作为因子之和
}
```
在这个代码中,`isPerfect`方法用于判断一个数是否是完全数,`sumOfFactors`方法则简单地返回传入数本身,因为我们已经通过`isPerfect`确认了它确实包含所有因子。
阅读全文