我寫了這兩種方法來確定一個數是否完美。我的教授想讓我把他們結合起來,看看是否有一個奇數的完美數字。我知道沒有一個(這是已知的),但我需要實際編寫代碼來證明這一點。找到一個奇數的完美數
這個問題與我的主要方法。我測試了兩種測試方法。我嘗試過調試,它被卡在數字5,但我不明白爲什麼。這裏是我的代碼:
public class Lab6
{
public static void main (String[]args)
{
int testNum = 3;
while (testNum != sum_of_divisors(testNum) && testNum%2 != 2)
testNum++;
}
public static int sum_of_divisors(int numDiv)
{
int count = 1;
int totalDivisors = 0;
while (count < numDiv)
if (numDiv%count == 0)
{
totalDivisors = totalDivisors + count;
count++;
}
else
count++;
return totalDivisors;
}
public static boolean is_perfect(int numPerfect)
{
int count = 1;
int totalPerfect = 0;
while (totalPerfect < numPerfect)
{
totalPerfect = totalPerfect + count;
count++;
}
if (numPerfect == totalPerfect)
return true;
else
return false;
}
}
當你說「調試」,你的意思是實際上使用調試器?一個調試器應該告訴你程序卡在哪個方法中。 – chrylis
你在這個代碼中沒有使用is_perfect –
'testNum%2'是'0'或'1',從不'2'。 – Teepeemm