Java求区间内所有的完数以及进行单个完数判断
完数的判断条件:当一个数恰好等于它的因子之和,这个数就成为“完数”。例如6=1+2+3,28=1+2+4+7+14。通过这些线索写两个方法分别对输入的单个数进行判断是否为一个完数和判定某区间类所有的完数并且打印(这里演示的是打印2-----1000以内的所有完数)。
package com.java;
public class FigureTest {
//单独判断一个数是否为完数
public static void getMath(int num){
int sum=1;
for(int i=2;i<num;i++){
if (num%i==0){
sum+=i;
}
}
if (sum==num){
System.out.println(num+"是一个完数");
}else {
System.out.println("这不是一个完数");
}
}
//遍历判断一个区间内的完数,1不是完数
public static void getAll(int num){
System.out.println("2----"+num+"之间的所有完数为:");
for(int i=2;i<num;i++){
int sum=0;
for (int j=1;j<i;j++){
if(i%j==0){
sum+=j;
}
}
if(sum==i){
System.out.print(i+"\t");
}
}
}
public static void main(String[] args) {
getMath(6);
getMath(28);
System.out.println("-------------------");
getAll(1000);
}
}
Result
希望对各位有帮助!!!!!!!