一个数如果恰好等于它的因子之和,这个数就是完数,例如 6 = 1 + 2 + 3,
编程找出1000内所有的完数。
什么是完数?
一个数如果恰好等于它的因子之和,这个数就是完数。
那么因子怎么找?
10的因子?
10 % 1 == 0
10 % 2 == 0
10 % 5 == 0
不算10本身。
10的因子:
1 + 2 + 5 =8
public class Homework06{public static void main(String[] args){// 1不属于完数,从2开始判断// 第一步:先从1到1000,每个数字都取出来for(int i = 2; i <=1000;i++){// 第二步:在这里可以拿到i,那么此时应该判断i是否是一个完数。// 这个数字有了,找这个数字的因子。// 假设现在这个数字就是6,i等于6int sum = 0;for(int j = 1; j <= i / 2; j++){//j取到的是:1 2 3 4 5//但实际上j取到哪就行了:1 2 3,取这几个数就行了。//取到一半就行。if(i % j == 0){//此时j就是因子。//记得将因子j追加,累计。sum += j}}//以上for结束表示:所有因子求和完毕了。if(i == sum){//i是一个完数System.out.println(i);}}}}
