判断素数:为什么遍历到n而不是n的平方根更准确
正确的判断素数的方法是遍历到n而不是n的平方根。
对于一个数n,如果它能被大于1并且小于n的数整除,那么它必定能被大于1并且小于等于n的平方根的数整除。
举个例子,假设我们要判断一个数n是否为素数,如果遍历的范围是2到n的平方根,那么在n=25的情况下,我们只需要判断是否能被2、3、4、5这几个数整除。然而,25能被5整除,但是如果我们遍历的范围是2到25,我们可以发现25能被5整除,因此判断素数的方法应该是遍历到n而不是n的平方根。
以下是修改后的示例代码:
public class PrimeNumber {
    public static boolean isPrime(int n) {
        if (n <= 1) {
            return false;
        }
        for (int i = 2; i < n; i++) {
            if (n % i == 0) {
                return false;
            }
        }
        return true;
    }
    public static void main(String[] args) {
        int number = 17; // 需要判断的数
        boolean isPrime = isPrime(number);
        if (isPrime) {
            System.out.println(number + ' 是素数');
        } else {
            System.out.println(number + ' 不是素数');
        }
    }
}
在上述示例中,我们修改了isPrime方法,遍历2到n的范围来判断一个数是否为素数。
原文地址: https://www.cveoy.top/t/topic/Toj 著作权归作者所有。请勿转载和采集!