getLargePrime Java 循环

下面的代码如果数字是 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;

    }

}


慕桂英546537
浏览 83回答 1
1回答

BIG阳

发生这种情况是因为此时i= 45 &nbsp;number= 45一切正常,我们减少i到 15,然后 45 % 15 再次正常工作number % i == 0,数字变为 15,但在此之后,你的i = 14, 13, 12 ...它不起作用,因为15 % 14, 13, 12...!= 0。只有当i变成 5 时它才能再次起作用, 因为15(数字)&nbsp;% 5(i)&nbsp;== 0.&nbsp;之后,程序停止给出numbers,i因为数字变为 5,而 i 从 4 变为 1。所以 5 % 4, 3, 2, 1 != 0。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java