我有一个为课堂写作业并且被卡住了,无法弄清楚如何让它像它应该的那样正确设置。我很感激我得到的任何帮助谢谢。这是作业:
如果整数的因数(包括 1(但不包括数字本身))与该数相加,则称该整数为完美数。例如,6 是一个完美数,因为 6=1+2+3。编写方法 Perfect 确定 number 是否为完美数。在确定并显示 2 到 1000 之间的所有完美数字的应用程序中使用此方法。显示每个完美数字的因数以确认该数字确实是完美的。
输出:
6 is perfect.
Factors:1 2 3
28 is perfect.
Factors: 1 2 4 7 14
496 is perfect.
Factors: 1 2 4 8 16 31 62 124 248
这是我遇到的代码:
public class Homework4 {
public static void main(String[] args) {
for(int num=2;num<=1000;num++)
{
if(perfect(num))
{
System.out.println(num + " is perfect.");
System.out.printf("Factors: ",perfect(num));
}
}
}
public static Boolean perfect(int num)
{
int sum = 0;
for(int i=1;i<num;i++)
{
if (num % i == 0)
{
sum+=i;
}
}
if(num==sum)
{
for(int i=1;i<num;i++)
{
if (num % i == 0)
{
System.out.print(i+" ");
}
}
}
return sum==num;
}
}
跑:
1 2 3 6 is perfect.
1 2 3 Factors: 1 2 4 7 14 28 is perfect.
1 2 4 7 14 Factors: 1 2 4 8 16 31 62 124 248 496 is perfect.
1 2 4 8 16 31 62 124 248 Factors: BUILD SUCCESSFUL (total time: 0 seconds)