题解 | #完全数计算#
完全数计算
http://www.nowcoder.com/practice/7299c12e6abb437c87ad3e712383ff84
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
if(sc.hasNext()){
//接收一个数
int input = sc.nextInt();
//用来统计完全数
int count=0;
for(int i =1;i<=input;i++){
if(PerNum(i)){
count++;
}
}
System.out.print(count);
}
}
private static boolean PerNum(int num){
//计算出来的因子,放在一个set集合中
HashSet<Integer> set=new HashSet<>();
//计算因子
for(int j=1;j<=num;j++){
if(num%j==0){
//没有余数说明是因子
set.add(j);
}
}
int all=0;
//对set集合进行遍历
for(Integer integer:set){
if(integer!=num){
all+=integer;
}
}
//再判断传进来的数和计算的数是否相同
if(all==num){
return true;
}else{
return false;
}
}
}