有人可以帮助我理解这个 for 循环吗?
Can someone help me to understand this for loop?
你好,我是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
到 n/2
的所有数字,并检查 n 是否可以被该数字整除。如果它可以被这些数字中的任何一个整除,函数 returns false
as n 有一个除数。如果我们没有找到从 2
到 n/2
的除数,则该数是质数。更好的方法是循环到 n 的平方根。
方法 isPrime(int n)
接受一个整数 n
并检查它是否为素数。
首先检查n
是否等于1。如果是方法returns则为false,因为1不是质数。
之后循环遍历 2
和 n/2
之间的所有数字,并检查 n
是否可以被该数字整除。如果是,方法 returns false 因为它不是质数。
它不检查从 2
到 n
的每个数字的原因是因为它是多余的。数字 n
永远不能表示为整数和大于 n/2
的数字的乘积,除了 n
但它不会是质数。
你好,我是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
到 n/2
的所有数字,并检查 n 是否可以被该数字整除。如果它可以被这些数字中的任何一个整除,函数 returns false
as n 有一个除数。如果我们没有找到从 2
到 n/2
的除数,则该数是质数。更好的方法是循环到 n 的平方根。
方法 isPrime(int n)
接受一个整数 n
并检查它是否为素数。
首先检查n
是否等于1。如果是方法returns则为false,因为1不是质数。
之后循环遍历 2
和 n/2
之间的所有数字,并检查 n
是否可以被该数字整除。如果是,方法 returns false 因为它不是质数。
它不检查从 2
到 n
的每个数字的原因是因为它是多余的。数字 n
永远不能表示为整数和大于 n/2
的数字的乘积,除了 n
但它不会是质数。