唯一分解定理-野牛程序员教少儿编程
作者:野牛程序员:2025-05-08 16:01:03算法阅读 1993
唯一分解定理-野牛程序员教少儿编程
🎯唯一分解定理(又称算术基本定理)是初等数论的基石之一,简单一句话总结就是:
每个大于 1 的整数都可以唯一地表示成若干个质数的乘积(不计顺序)!
🧠 一句话理解
比如:
60 = 2 × 2 × 3 × 5
210 = 2 × 3 × 5 × 7
997 = 它本身就是一个质数
这些质数的乘积形式,就是这个数的“质因数分解”。
🔍 正式定义(带点学术味)
对于任意一个大于 1 的整数 n,可以表示为:
n=p_1^a_1×p_2^a_2×⋯×p_k^a_k
其中:
p_1, p_2, ..., p_k 是互不相同的质数;
a_1, a_2, ..., a_k是正整数;
这个分解在不考虑因数顺序的前提下是唯一的!
🔧 举个实际例子来剖析
例如:180
分解步骤:
180 ÷ 2 = 90
90 ÷ 2 = 45
45 ÷ 3 = 15
15 ÷ 3 = 5
5 ÷ 5 = 1
所以:
👉 180 = 2² × 3² × 5
是不是感觉就像在剥洋葱,把它一层层“质因子”剥出来。
📦 用处在哪?
✔️ 约数个数、和、最大公约数、最小公倍数计算
✔️ 判断两个数是否互质(没有共同质因子)
✔️ 解决信息学竞赛中大量涉及因子、整除、分解的问题
✔️ 密码学中大数分解和 RSA 算法也离不开它
🤖 C++ 实现质因数分解小程序
#include <iostream> using namespace std; void factorize(int n) { cout << n << " 的质因数分解是:"; for (int i = 2; i * i <= n; ++i) { while (n % i == 0) { cout << i; n /= i; if (n > 1) cout << " × "; } } if (n > 1) cout << n; // 最后可能剩下一个大质数 cout << endl; } int main() { int num; cout << "请输入一个整数:"; cin >> num; factorize(num); return 0; }
📚 趣味记忆口诀
大于 1 的整数,质数分身来集合,
谁也逃不掉,质因子来凑个热闹!
📌 少儿编程延伸练习:
写一个程序,判断两个数是否互质
写一个程序,输出一个数所有质因子和对应次数
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
