解决步骤:
判断是否是完数
import java.util.Scanner;
public class isWanshu {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int sum = 0;
System.out.println("输入数字:");
int wanshu = sc.nextInt();
for (int i=1;i<wanshu;i++) { //利用循环查找完数真因子,完数真因子不包含本身
if (wanshu % i == 0) { //判断是否是一个数的因子
sum += i; //一个数的因子除本身相加
}
}
if(sum==wanshu){ //判断是否是完数
System.out.println("是完数");
}
}
}
查找1000内的完数
public class isWanshu {
public static void main(String[] args) {
System.out.println("1000内的完数有;");
for (int wanshu = 2; wanshu <= 1000; wanshu++) { //从2开始取,因为完数一定不可能包含本身
int sum = 0;
for (int i = 1; i < wanshu; i++) { //利用循环查找完数真因子,完数真因子不包含本身
if (wanshu % i == 0) { //判断是否是一个数的因子
sum += i; //一个数的因子除本身相加
}
}
if (sum == wanshu) { //判断是否是完数
System.out.println(sum);
}
}
}
}
输出