java求完全数输出因子
时间: 2024-09-15 16:12:30 浏览: 78
求出1到1000的所有完全数.java
在Java中,一个完全数是指它的所有真因数(除了自身外)加起来正好等于它本身的数。例如,6是一个完全数,因为它有两个真因数1和2,它们之和为3,恰好等于本身。
下面是一个简单的Java程序,用于找出并输出小于给定数字的所有完全数及其因子:
```java
public class PerfectNumbers {
public static void main(String[] args) {
int n = 100; // 改变这个值可以测试更大的范围
for (int i = 1; i <= n; ++i) {
if (isPerfect(i)) {
System.out.println("Number " + i + " is a perfect number.");
printFactors(i);
}
}
}
// 判断一个数是否是完美数
public static boolean isPerfect(int num) {
int sum = 1;
for (int factor = 2; factor * factor <= num; ++factor) {
if (num % factor == 0) {
sum += factor;
if (factor != num / factor) { // 如果因子不是其自身一半,则添加另一个因子
sum += num / factor;
}
}
}
return sum == num && num > 1; // 1不是完美数,排除
}
// 输出一个数的所有因子
public static void printFactors(int num) {
for (int i = 1; i <= num; ++i) {
if (num % i == 0) {
System.out.print(i + " ");
}
}
System.out.println(); // 结束行
}
}
```
在这个程序中,`isPerfect`方法会检查每个数是否是完美数,并通过`printFactors`方法显示它的因子。运行此程序,你可以看到指定范围内(如1到100)的完全数以及它们的因子。
阅读全文