当前位置:首页算法 > 正文

唯一分解定理-野牛程序员教少儿编程

作者:野牛程序员: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
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
  • 唯一分解定理-野牛程序员教少儿编程
  • 相关推荐

    最新推荐

    热门点击