下面的代碼如果數字是 90,我不明白為什么“i”不會是 90 或 10 也不是 3,而是停在 5。提前感謝您的幫助。public class LargestPrime { public static int getLargestPrime(int number) { if (number <= 1) return -1; for (int i = number ; i > 1; i--) { if (number % i == 0) { number = i; System.out.println(" i= " + i + " number= " + number); } } return number; }}
1 回答

BIG陽
TA貢獻1859條經驗 獲得超6個贊
發生這種情況是因為此時i= 45 number= 45
一切正常,我們減少i
到 15,然后 45 % 15 再次正常工作number % i == 0
,數字變為 15,但在此之后,你的i = 14, 13, 12 ...
它不起作用,因為15 % 14, 13, 12...
!= 0。只有當i
變成 5 時它才能再次起作用, 因為15
(數字) % 5
(i) == 0
. 之后,程序停止給出number
s,i
因為數字變為 5,而 i 從 4 變為 1。所以 5 % 4, 3, 2, 1 != 0。
添加回答
舉報
0/150
提交
取消