什么是完全数
完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。
从概念可以得到:判断一个数是不是完全数,需要将其所有因子相加(除自身因子外),等于这个数,则是完全数。
那么第一步就是获取因子列表 a1,a2,a3…
第二步验证是否相等 a1+a2+a3+… == x
看代码:
/**
* 判断一个数是完全数
*/
public class TestPerfectNumber {
public static void main(String[] args) {
System.out.println(check(6));//是
System.out.println(check(5));
System.out.println(check(28));//是
System.out.println(check(27));
System.out.println(check(496));//是
System.out.println(check(495));
}
static boolean check(int x) {
if(x<=0) {
return false;
}
int sum = 0;
for(int i=1; i<=x/2; i++) {
if(x%i==0) {
sum += i;
}
}
if(sum==x) {
return true;
}
return false;
}
}
/*
true
false
true
false
true
false
*/