下面的代码如果数字是 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
提交
取消