一个数如果恰好等于它的因数(因数:整数a除以整数b(b≠a)的商正好是整数而没有余数,我们就说b是a的因数)之和,这个数就称为 “完数”。例如6=1+2+3,6为完数。编程找出1000以内的所有完数。
问题描述:
我解不了,难倒了
一个数如果恰好等于它的因数(因数:整数a除以整数b(b≠a)的商正好是整数而没有余数,我们就说b是a的因数)之和,这个数就称为 “完数”。例如6=1+2+3,6为完数。编程找出1000以内的所有完数。
答
public class A {
public static void main(String[] args) {
int i, j;
for (i = 1; i <= 1000; i++) { // 判断一千以内的完数
int sum = 0;
for (j = 1; j < i; j++) {
if (i % j == 0)// 判断i的因子
sum = sum + j;
}
if (sum == i) // 判断该数因子的和是否为完数
System.out.println(i);// 6 28 496
}
}
}