package Four;
/*
* 一个数,如果恰好等于它的各个因子(该数本身除外)之和,如6=3+2+1,那么称该数为完数
* 若因子之和大于该数,则称其为“盈数”,求2到60之间的所有完数和盈数
*
* 输出2-60之间的所有完数和盈数,并以如下形式输出
* E:e1 e2,....
* G:g1 g2.....
*
* */
public class WanNumber {
public static int Sum(int x){
int sum = 0;
for(int i =1;i<x;i++){
if(x%i==0){
sum+=i;
}
}
return sum;
}
public static void main(String[] args) {
int[] numberE = new int[100];
int[] numberG = new int[100];
int w = 0,y =0;
for(int i =2;i<=60;i++){
if(i ==Sum(i)){
numberE[w++] = i;
}else if(i<Sum(i)){
numberG[y++] = i;
}
}
System.out.print("E:");
for(int i =0;i<numberE.length;i++){
if(numberE[i]>0){
System.out.print(numberE[i]+" ");
}
}
System.out.println();
System.out.print("G:");
for(int i =0;i<numberG.length;i++){
if(numberG[i]>0){
System.out.print(numberG[i]+" ");
}
}
}
}
控制台输出测试

本文介绍了一种使用Java编程语言求解2至60之间完数与盈数的方法。完数是指一个数恰好等于其因子(除自身外)之和,而盈数则是因子之和大于该数。通过定义一个计算因子和的函数并遍历指定范围内的整数,我们可以找出符合条件的所有完数和盈数。
902

被折叠的 条评论
为什么被折叠?



