从键盘输入一个整数,判断该数是否是完全数,完全数是指其所有因数(包括1但不包括其自身)的和等于该数自身的数。例如,28=1+2+4+7+14就是一个完全数。
import java.util.Scanner;
解法1:
public class for4_7 {
public static void main(String[] args){
System.out.println("请您输入一个整数");
Scanner reader=new Scanner(System.in);
int n = reader.nextInt();
int sum=0;
for(int i=1;i<=n/2;i++) {
if(n % i == 0) {
sum = sum + i;
}
}//因数全部相加
if(sum==n){
System.out.println(n+"是一个完全数!");
}
else System.out.println(n+"不是一个完全数!");
}
}
解法2:
import java.util.Scanner;
public class for4_7_ {
public static void main(String[] args) {
int i,a,b=0;
Scanner reader=new Scanner(System.in);
System.out.println("输入非数值退出!!,否则输入数");
while (reader.hasNextInt()){
b=0;
a=reader.nextInt();
for(i=1;i<=a/2;i++)
if(a%i==0)b+=i;
if(a==b)
System.out.println(a+"是完全数!");
else System.out.println(a+"不是完全数");
System.out.print("\n输入非数值退出!!,否则输入数");
}
}
}
欢迎交流指正~