所以我是一个java newby,我正在做这个家庭作业,要求我写一个程序来找到前四个完美的数字.我想我的一切都大致正确,但我无法测试我的程序,因为我尝试运行程序时出现错误消息"线程异常"主"javva.lang.NoSuchMethodError:main".编译得很好,我认为所有数学都是正确的:
import java.awt.*;
public class PerfectNumbers
{
int num = 1, divisor1 = 1, divisor2, divSum, perfNum1, perfNum2, perfNum3, perfNum4;
public void main()
{
do
{
while (num != divSum)
{
if (num % divisor1 == 0 && divisor1 != Math.sqrt(num))
{
divSum += divisor1;
divisor2 = num / divisor1;
divSum += divisor2;
divisor1++;
}
else if (num % divisor1 !=0 && divisor1 != Math.sqrt(num))
divisor1++;
else if (divisor1 == Math.sqrt(num))
{
divSum += Math.sqrt(num);
divisor1 = 1;
}
}
if (num == divSum && perfNum1 == 0)
{
perfNum1 = num;
num++;
divSum = 0;
}
else if (num == divSum && perfNum2 == 0)
{
perfNum2 = num;
num++;
divSum = 0;
}
else if (num == divSum && perfNum3 == 0)
{
perfNum3 = num;
num++;
divSum = 0;
}
else if (num == divSum && perfNum4 == 0)
{
perfNum4 = num;
break;
}
}
while (perfNum4 == 0);
if (perfNum4 == 0)
System.out.print("The first four perfect numbers are "
+ perfNum1 + ", " + perfNum2 + ", " + perfNum3 + ", "
+ perfNum4 + ".");
}
}
Run Code Online (Sandbox Code Playgroud)
PS非常感谢任何有关newb语法或风格错误的建议!
public void main()
Run Code Online (Sandbox Code Playgroud)
应该
public static void main(String[] args)
Run Code Online (Sandbox Code Playgroud)