有人可以帮助我了解此for循环吗?

时间:2019-03-20 22:11:25

标签: java for-loop methods operators

你好,我是Java的新手,Udemy的老师给了我们这种方法,但是他没有解释,我发现它很难理解,我试图执行它,但是还是一样。 PS:对不起,我的英语我是阿拉伯人。 这是方法:

public static boolean isPrime(int n) {

    if(n == 1) {
        return false;
    }

        for(int i = 2; i <= n/2; i++) {
            if(n % i == 0) {
                return false;
            }
        }

    return true;


}

2 个答案:

答案 0 :(得分:2)

代码循环遍历从2n/2的所有数字,并检查n是否可被该数字整除。如果可以被这些数字整除,则函数将返回false,因为n具有除数。如果我们找不到从2n/2的除数,则该数字为质数。更好的方法是循环到n的平方根。

答案 1 :(得分:0)

方法isPrime(int n)接受整数n并检查其是否为素数。

首先,它检查n是否等于1。如果是,则该方法返回false,因为1不是素数。

然后,它循环遍历2n/2之间的所有数字,并检查n是否可被该数字整除。如果是,则该方法返回false,因为它不是素数。

它不检查2n的每个数字的原因是因为它是多余的。数字n不能表示为整数与大于n/2的数字的乘积,除了n之外,它不是素数。