倍数:n × 1, n × 2, n × 3…… 从小到大无限多个。约数(因数):能整除 n 的数,1 ≤ 约数 ≤ n,有限个,成对出现。
🖼️ 大图看明白
📏 找约数与倍数,只要 3 步
第 1 步:求倍数:从 n 开始"跳着数"——n、2n、3n……想数多少数多少。
第 2 步:求约数:i 从 1 试到 n,n % i == 0 的 i 就是约数。
第 3 步:约数成对:找到小的一半,大的一半自动出现(a×b=n → a、b 都是约数)。
为什么约数成对?因为 a × b = n。每找到一个小的约数 a,就白捡一个大的约数 b = n ÷ a。所以只试到 √n 就能找出全部约数(第 01 课的技巧)。
💻 C++ 怎么写
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
// 输出 n 的全部约数:i 从 1 到 n,能整除的留下
for (int i = 1; i <= n; i++) {
if (n % i == 0)
cout << i << " "; // i 是 n 的约数
}
cout << "\n";
// 输出 n 的前 10 个倍数:跳着数
for (int i = 1; i <= 10; i++)
cout << n * i << " "; // n, 2n, 3n, ...
cout << "\n";
return 0;
}