⭐

素数与合数

素数 = 只有两个"朋友"的数字:1 和它自己

💡 打个比方

把每个数字想成一个小朋友,"因数"就是它的朋友。

7 号小朋友很"孤傲":除了 1 号和自己,谁都不是它的因数。

12 号小朋友人超广:1、2、3、4、6、12 都是它的因数,朋友一大串!

只有 1 和它自己两个因数的数,叫素数(质数);因数还有一大堆的,叫合数。

🖼️ 大图看明白

素数示例 7 1 × 7 只有一对"朋友" 合数示例 12 1 × 12 2 × 6 3 × 4 朋友一大串! 1 ~ 30 素数星图 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 素数(只有 2 个因数) 合数(因数一大串) 1:既不是素数也不是合数

📏 判断一个数是不是素数,只要 3 步

  1. 第 1 步:小于 2 的数(0 和 1)直接说"不是"。
  2. 第 2 步:从 2 开始试除,试到 √n 就停(再大就不用试了!)。
  3. 第 3 步:有人能整除 → 合数;一个都没有 → 素数 ⭐。
为什么只试到 √n?因为因数总是成对出现的:如果 n = a × b,那么 a 和 b 里必然有一个 ≤ √n。

💻 C++ 怎么写

// 判断 n 是不是素数
bool isPrime(int n) {
    if (n < 2) return false;            // 0、1 不是素数
    for (int i = 2; i * i <= n; i++) {  // 只试到 √n
        if (n % i == 0) return false;  // 被整除了,合数!
    }
    return true;                        // 没人能整除 → 素数 ⭐
}

int main() {
    for (int n = 1; n <= 30; n++)
        if (isPrime(n)) cout << n << " 是素数 ⭐\n";
    return 0;
}

✋ 你来试试

题目 1:9 是素数吗?
不是。9 = 3 × 3,它除了 1 和 9 之外还有因数 3,所以是合数。(小心!9 是奇数,但奇数不一定是素数。)
题目 2:1 是素数吗?
不是。按约定:1 只有 1 个因数(就是它自己),不满足"恰好 2 个因数",所以 1 既不是素数也不是合数。这是考试高频考点!
🎯 一句话记住:素数只有两个"朋友"——1 和它自己;其他数都是合数(1 除外,谁也不是)。