大家可以关注一下专栏,方便大家需要的时候直接查找,专栏将持续更新~
题目描述
编写一个Java程序,用于找出1000以内的所有完数。一个完数是指它的因子(除了自身以外的约数)之和等于它本身的数。例如,6是一个完数,因为 1+2+3=6
程序需要找出1000以内的所有完数,并打印出来。
解题思路
- 遍历1到1000:遍历从1到1000之间的所有整数。
- 找出因子:对于每个整数,找出它的所有因子(除了自身)。
- 计算因子之和:计算这些因子的和。
- 判断完数:如果因子之和等于原数,则该数是完数,打印出来。
源码答案
public class PerfectNumbers {
public static void main(String[] args) {
System.out.println("1000以内的完数有:");
for (int i = 1; i <= 1000; i++) {
int sumOfFactors = 0;
// 找出所有因子并计算它们的和
for (int j = 1; j <= i / 2; j++) {
if (i % j == 0) {
sumOfFactors += j;
}
}
// 判断并打印完数
if (sumOfFactors == i) {
System.out.print(i + " ");
}
}
System.out.println(); // 打印换行
}
}
输出结果
1000以内的完数有:
6 28 496
以上就是本次分享的所有内容,感兴趣的朋友点个关注呀,感谢大家啦~
更多Java | AI+编程玩法 的相关资料和源码请移步至公众号:程序员影子