问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

整数唯一分解定理及其应用

创作时间:
作者:
@小白创作中心

整数唯一分解定理及其应用

引用
CSDN
1.
https://blog.csdn.net/u011426016/article/details/143822068

整数唯一分解定理,又称算术基本定理,是数论中的一个核心定理,由德国数学家高斯在其著作《算术研究》中首次提出。该定理不仅揭示了整数分解的内在规律,还为数论中的许多重要结论提供了理论基础。本文将详细介绍整数唯一分解定理及其相关应用,包括数的约数个数计算、最大公约数和最小公倍数的求解方法。

一、整数唯一分解定理

整数唯一分解定理,也称为算术基本定理,是数论中的一个重要定理。它指的是每个大于1的整数都可以唯一地表示为几个素数的乘积,而且这些素数的幂都是正整数。

$$
n = p_1^{a_1} * p_2^{a_2} * … * p_k^{a_k}
$$

整数唯一分解的C++代码如下:

void IntDecompose(int n) {
    map<int,int> maps;  		//存储质数以及对应的幂
    int i = 2, e = 0;
    while (n != 1) {
        if (n % i == 0) {
            n /= i;
            maps[i]++;
        }
        else i++;
    }
    auto it = maps.begin();		//输出n对应的分解结果
    cout << n << "=" << it->first << "^" << it->second;
    for (++it; it != maps.end(); ++it)
        cout << " * " << it->first << "^" << it->second;
}

二、数的约数个数

根据整数唯一分解定理,可以得到一个结论:$n$的正约数的个数为:

$$
F(n) = (a_1+1)(a_2+1)\cdots (a_k+1)
$$

证明:对于$p_i^{a_i}$, 它包含的因子有:$p_i^0, p_i^1,p_i^2,\cdots ,p_i^{a_i}$共$a_i+1$个因子。那么,$n$有多少个因数呢?我们可以:

  • 从$p_1$中取1个因子,有$a_i+1$种取法;
  • 从$p_2$中取1个因子,有$a_2+1$种取法;
  • …;
  • 从$p_k$中取1个因子,有$a_k+1$种取法。

然后将他们连乘起来。

总的数目为:$F(n) = (a_1+1)(a_2+1)\cdots (a_k+1)$。

三、最大公约数和最小公倍数

给定两个数$x$和$y$,他们可以分解为相同素数的幂的乘积:

$$
x = p_1^{a_1} * p_2^{a_2} * … * p_k^{a_k}
$$

$$
y = p_1^{b_1} * p_2^{b_2} * … * p_k^{b_k}
$$

例如:给定$x = 100 , y = 210$则:

$$
100 = 2^2 * 3^0 5^27^0
$$

$$
210=2^1 * 3^1 * 5^1 *7^1
$$

3.1 最大公约数

给定式(3)所示的两个数$x, y$, 它们的最大公约数为:

$$
gcd(x,y) = p_1^{min(a_1,b_1)} * p_2^{min(a_2,b_2)} * … * p_k^{min(a_k,b_k)}
$$

简单证明:

首先,$gcd(x,y)$一定能整除$x$和$y$。因为这里所有素数的幂都是取的较小者,即$p_i$的幂为$min(a_i,b_i)$, 所以$p_i^{min(a_i,b_i)} | p_i^{a_i}$且$p_i^{min(a_i,b_i)} | p_i^{b_i}$。 因此$gcd(x,y)$一定能够整除$x$和$y$。

那么,为什么$gcd(x,y)$是$x$和$y$的最大公约数呢?这里使用反证法。

假设$g$才是$x$和$y$的最大公约数。

那么,必然存在$g$包含的某个素数$p_i$的指数$c_i > min(a_i, b_i)$。

但是,此时$p_i^{c_i}$要么不能整除$p_i^{a_i}$, 要么不能整除$p_i^{b_i}$。

因此,$g$不能同时整除$x$和$y$。

所以,与假设矛盾,$gcd(x,y)$才是$x$和$y$的最大公约数。

3.2 最小公倍数

给定式(3)所示的两个数$x, y$, 它们的最小公倍数为:

$$
lcm(x,y) = p_1^{max(a_1,b_1)} * p_2^{max(a_2,b_2)} * … * p_k^{max(a_k,b_k)}
$$

证明过程与最大公约数类似。

有了最大公约数和最小公倍数的定义,我们得出一个重要的结论:

$$
xy = gcd(x,y)*lcm(x,y)
$$

因为 :

$$
\left(p_1^{min(a_1,b_1)} * p_2^{min(a_2,b_2)} * … * p_k^{min(a_k,b_k)}\right) *\left(p_1^{max(a_1,b_1)} * p_2^{max(a_2,b_2)} * … * p_k^{max(a_k,b_k)}\right) \
= p_1^{a_1+b_1} * p_2^{a_2+b_2} * … * p_k^{a_k+b_k}=xy
$$

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号