⭐
素数与合数
素数 = 只有两个"朋友"的数字:1 和它自己
💡 打个比方
把每个数字想成一个小朋友,"因数"就是它的朋友。
7 号小朋友很"孤傲":除了 1 号和自己,谁都不是它的因数。
12 号小朋友人超广:1、2、3、4、6、12 都是它的因数,朋友一大串!
只有 1 和它自己两个因数的数,叫素数(质数);因数还有一大堆的,叫合数。
🖼️ 大图看明白
📏 判断一个数是不是素数,只要 3 步
- 第 1 步:小于 2 的数(0 和 1)直接说"不是"。
- 第 2 步:从 2 开始试除,试到 √n 就停(再大就不用试了!)。
- 第 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 除外,谁也不是)。