要求输入1到1000之间的的任何一个数说出是不是完全数,并要求把他分开输出。
例如:6是完全数,6=1+2+3;
      28是完全数 28=1+2+4+7+14;
多谢大家的指点是要一个带方法的程序。

解决方案 »

  1.   

    public class T {
    public static void main(String args[]){
    for(int i=1; i<10000; i++){
    if(test(i)){
    System.out.println(i);
    }
    }
    }

    public static boolean test(int it){
    int tmp=0;
    for(int i=1; i<it; i++){
    if(it%i == 0){
    tmp += i;
    }
    }

    if(tmp==it){
    return true;
    }
    else
    return false;
    }
    }
      

  2.   

    import java.util.*;public class T {
    public static void main(String args[]){
    for(int i=1; i<10000; i++){
    test(i);
    }
    }

    public static void test(int it){
    int tmp=0;
    ArrayList<Integer> list = new ArrayList<Integer>();
    for(int i=1; i<it; i++){
    if(it%i == 0){
    tmp += i;
    list.add(new Integer(i));
    }
    }

    if(tmp==it){
    Iterator ite = list.iterator();
    System.out.print(it+"=");
    while(ite.hasNext()){
    System.out.print("+"+(Integer)ite.next());
    }
    System.out.println(";");
    }
    }
    }
      

  3.   

    ArrayList<Integer> list = new ArrayList<Integer>()
    -----------------------
    这是5.0里面的写法吧,现在5.0都开始流行了哦