Java 寻找素数的两种方法

Java 寻找素数的两种方法,java,algorithm,math,primes,Java,Algorithm,Math,Primes,我理解为什么你只需要循环,而I*II*I两者都是完全相同的。把它当作一个数学运算。如果i=n/i,则i*i=n。类似地,这里的i*i如果i*i这是一个数学问题,而不是一个代码问题,投票到closeDivide是一个比乘法慢的运算,所以第一个代码更快。我真的不知道为什么我不这样看它。谢谢 public static boolean checkPrime1(int n){ for(int i = 2; i*i <= n; i++){ if(n%i==0)return f

我理解为什么你只需要循环,而
I*I
I*I两者都是完全相同的。把它当作一个数学运算。如果
i=n/i
,则
i*i=n
。类似地,这里的
i*i如果i*i这是一个数学问题,而不是一个代码问题,投票到closeDivide是一个比乘法慢的运算,所以第一个代码更快。我真的不知道为什么我不这样看它。谢谢
public static boolean checkPrime1(int n){
    for(int i = 2; i*i <= n; i++){
        if(n%i==0)return false;
    } return true;
}
public static boolean checkPrime(int n){
    for(int i = 2; i <= n/i; i++){
        if(n%i == 0)return false;
    } return true;
}