Prime Number—— 定义、判定与经典算法

Homework to Blog:素数探秘 —— 定义、判定与经典算法


一、什么是素数?

素数(Prime Number),又称质数,是指在大于 1 的自然数中,除了 1 和它本身以外,不再有其他因数的数。

  • 例如:2、3、5、7、11、13 ……
  • 特别地,2 是最小的素数,也是唯一的偶素数
  • 1 既不是素数也不是合数。

二、为什么素数很重要?

素数被誉为“数字的原子”,它们是数论的基础,在密码学(如 RSA 加密)、哈希算法、随机数生成等领域都有广泛应用。理解素数,是进入计算机科学与数学深层领域的第一步。


三、如何判断一个数是否为素数?

1. 最朴素的试除法

对于一个数 ( n ),检查从 2 到 ( n-1 ) 是否存在能整除 ( n ) 的数。若存在,则 ( n ) 是合数;否则是素数。

时间复杂度:( O(n) ),对大的 ( n ) 效率极低。

2. 优化一:只需检查到 ( \sqrt{n} )

如果 ( n ) 有一个大于 ( \sqrt{n} ) 的因数,那么它必然有一个小于 ( \sqrt{n} ) 的因数。因此只需检查 2 到 ( \sqrt{n} ) 即可。

时间复杂度:( O(\sqrt{n}) )

3. 进一步优化:跳过偶数

除了 2 以外,所有偶数都不是素数。可以单独处理 2,然后只检查奇数。


四、Java 代码示例:判断素数

public class PrimeChecker {
    public static boolean isPrime(int n) {
        if (n <= 1) return false;
        if (n == 2) return true;
        if (n % 2 == 0) return false;
        
        int limit = (int) Math.sqrt(n);
        for (int i = 3; i <= limit; i += 2) {
            if (n % i == 0) return false;
        }
        return true;
    }
    
    public static void main(String[] args) {
        int[] testNumbers = {2, 3, 4, 17, 25, 97, 100};
        for (int num : testNumbers) {
            System.out.println(num + " 是素数? " + isPrime(num));
        }
    }
}

![屏幕截图 2026-06-15 150050](https://img2024.cnblogs.com/blog/3805930/202606/3805930-20260615150109751-549273857.png)
posted @ 2026-06-15 15:02  jenini  阅读(40)  评论(0)    收藏  举报