首先,什么是完数?如果一个大于
1
的正整数的所有因子之和等于它的本身,则称这个数是完数,例如:6=1*6=2*3,那么6的所有因子为1、2、3且6=1+2+3,所以6是完数。根据定义,解题的思路就出来了。第一步,先求出所有因子。第二步,将所有因子相加看是否等于本身。
import java.util.Scanner;
public class Wanshu {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Scanner input=new Scanner(System.in);
int n=input.nextInt();
int sum=0;
for(int i=1;i<n;i++) {
//当i是n的因子时相加
if(n%i==0)
sum+=i;
}
input.close();//平时要养成习惯关闭接口,可以省略
System.out.println(n==sum);
}
}