完数的概念
如果一个数恰好等于他的因子之和,这个数就称为“完数”,例如 6 = 1 + 2 + 3.
方法
根据定义,需要找到这个数的所有因子,然后将因子相加之后的和与这个数进行比较,如果相等,就是完数,否则不是。
求一个整数的所有因子
分别用从1到这个数的一半的数和这个数本身做取模运算,如果结果等于0,说明找到了一个因子。
//num 表示要求因子的那个数
for(int i = 1; i <= num/2; i++){
if(num % i == 0){
System.out.println(i);
}
}
求完数的示例代码
//求 1000 以内的所有完数
public class Demo {
public static void main(String[] args) {
for(int i = 1; i <= 1000; i++) {
int sum = 0;
for(int j = 1; j <= i/2; j++) {
if(i % j == 0) {
sum += j;
}
}
if(sum == i) {
System.out.println(i);
}
}
}
}