Java版求1000以内的完全数

/*
* 若一个自然数,它所有的真因子(即除了自身以外的约数)的和恰好等于它本身,这种数叫做完全数,简称完数。
* 例如:6=1+2+3。
* 题目:求1000以内的完全数。
*/
public class PerfectNumber { // 数字上限
static Integer limit = 1000; public static void main(String[] args) {
System.out.println(limit + "以内的完全数有:");
fun(limit);
} public static void fun(Integer limit) {
for (int i = 1; i <= limit; i++) {
// 定义真因子之和变量
int sum = 0;
for (int j = 1; j < i / 2 + 1; j++) {
// 如果当前数能被整除
if (i % j == 0) {
sum += j;
}
}
// 如果真因子(即除了自身以外的约数)的和恰好等于它本身,说明是完全数。
if (sum == i) {
System.out.println(i);
}
}
}
}

输出结果:

1000以内的完全数有:
6
28
496
上一篇:依赖注入及AOP简述(三)——依赖注入的原理


下一篇:iOS利用通知(NSNotification)进行传值