一、题目
一个数如果恰好等于它的因子之和,这个数就称为 完数
例如 6=1+2+3.编程 找出 1000 以内的所有完数。
二、题思路
概念: 因子 是指一个数所拥有的约数。
- 假如这个数是 n
- 取 1 ~ n - 1 的数中有哪几个是n的约数
- 然后把这些约数相加
- 相加和跟 n 相等,那 n 就是 "完数 "。
三、代码实现
package basic.example;
/**
* Description: 求完数
*
* @author Eric
* @date 2022/3/31
* @version 1.0
*
* <pre>
* 修改记录:
* 修改后版本 修改人 修改日期 修改内容
* 2022/3/31 Eric 2022/3/31 Create
* </pre>
*
*/
public class BasicFor10 {
/**
* 题目:一个数如果恰好等于它的因子之和,这个数就称为 "完数 "。
*
* 例如 6=1+2+3.编程 找出 1000 以内的所有完数。
*
* @param args
*/
public static void main(String args[]) {
int sum = 0;//定义和
for (int i = 2; i < 1000; i++) {
for (int j = 1; j < i; j++) {
if (i % j == 0) sum += j;// 整除即约数
}
if (sum == i) System.out.println("当前完数为: " + i);
sum = 0;
}
}
}