一个数如果恰好等于它的各因子(该数本身除外)子和,如:6=3+2+1,则称其为“完数”;若因子之和大于该数,则称其为“盈数”。求出2 到60 之间所有“完数”和“盈数”,并以如下形式输出: E: e1 e2 e3 ......(ei 为完数) G: g1 g2 g3 ......(gi 为盈数)
无输入数据
按描述要求输出(注意EG后面的冒号之后有一个空格)。
无
无
import java.util.ArrayList; public class Main { public static void main(String[] args) { ArrayList<Integer> g = new ArrayList<>(); ArrayList<Integer> e = new ArrayList<>(); for (int i = 2; i <= 60; i++) { int sum=0; for (int j = 1; j < i; j++) if (i%j==0) sum+= j; if (sum==i) e.add(i); else if (sum>i) g.add(i); } System.out.print("E: "); for (Integer i : e) System.out.print(i+" "); System.out.print("G: "); for (Integer i : g) System.out.print(i+" "); } }
public class Main { public static void main(String[] args) { int []num=new int[58]; int []num1=new int [58]; int sum=0;int p=0;int o=0; for(int i=2;i<=60;i++) { for(int j=1;j<i;j++) { if(i%j==0) { sum+=j; } } if(sum==i) { num[p]=i; p++; } else if(sum>i) { num1[o]=i; o++; } sum=0; } System.out.print("E: "); for(int i=0;i<num.length;i++) { if(num[i]!=0) System.out.print(num[i]+" "); } System.out.print("G: 2 "); for(int i=0;i<num1.length;i++) { if(num1[i]!=0) { System.out.print(num1[i]+" "); } } } }
public class Main { public static void main(String args []) { StringBuffer E= new StringBuffer("E: "); StringBuffer G= new StringBuffer("G: 2 "); for(int i=3;i<=60;i++) { int sum=0;//计数器 for(int j=1;j<i;j++) { sum=i%j==0? sum+j:sum; } if(sum==i) E.append(i+" "); if(sum>i) G.append(i+" "); } System.out.println(E.toString()+G.toString()); } } 目前最短的Java demo