JavaブルーブリッジカップアルゴリズムトレーニングALGO_323_は1000以内の数を見つけます

JavaブルーブリッジカップアルゴリズムトレーニングALGO_323_は1000以内の数を見つけます

問題の説明

    如果一个数恰好等于它的所有因子(包括1但不包括自身)之和,则称之为“完数”。例如6的因子是1,2,3,
	且6=1+2+3,因此6是完数。编写程序找出1000之内的所有完数。注意1不是完数。
输入格式
  无
输出格式
  如有多个完数,则分行输出,每行输出一个完数。(注意,不要输出其他任何多余字符)


import java.util.ArrayList;

/**
		@author Mingxu_Deng
		@version 2020-10-9下午08:09:25

问题描述
	    如果一个数恰好等于它的所有因子(包括1但不包括自身)之和,则称之为“完数”。例如6的因子是1,2,3,
		且6=1+2+3,因此6是完数。编写程序找出1000之内的所有完数。注意1不是完数。
	输入格式
	  无
	输出格式
	  如有多个完数,则分行输出,每行输出一个完数。(注意,不要输出其他任何多余字符)
 */
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++){
    
    //这里原本是: j<i , j<=i/2 可以节约时间
				if(i%j==0){
    
    
					m=m+j;//暂时存放 和
				}
			}
			if(i==m){
    
    //如果和等于  i ,存进  list
				list.add(i);
			}
		}
		for(int i=0;i<list.size();i++){
    
    //换行输出,遍历  list
			System.out.println(list.get(i));
		}
	}
}

おすすめ

転載: blog.csdn.net/DAurora/article/details/108985779