Java 蓝桥杯 算法训练 ALGO_323_求1000以内的完数
问题描述
如果一个数恰好等于它的所有因子(包括1但不包括自身)之和,则称之为“完数”。例如6的因子是1,2,3,
且6=1+2+3,因此6是完数。编写程序找出1000之内的所有完数。注意1不是完数。
输入格式
无
输出格式
如有多个完数,则分行输出,每行输出一个完数。(注意,不要输出其他任何多余字符)
import java.util.ArrayList;
public class ALGO_323_求1000以内的完数 {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<Integer>();
int m ;
for(int i=1;i<1000;i++){
m=0;
for(int j=1;j<=i/2 ;j++){
if(i%j==0){
m=m+j;
}
}
if(i==m){
list.add(i);
}
}
for(int i=0;i<list.size();i++){
System.out.println(list.get(i));
}
}
}