Reqaw’s Blog

 

摘要

  本文主要讲述了算术基本定理的内容,具体的应用形式,重点结合例题展示如何使用算术基本定理求解问题。


 

算术基本定理

  算术基本定理可表述为:任何一个大于1的自然数 N,如果N不为质数,那么N可以唯一分解成有限个质数的乘积N=P1a1P2a2P3a3......Pnan,这里P1<P2<P3......<Pn均为质数,其中指数ai是正整数。这样的分解称为 N 的标准分解式。

  算术基本定理是初等数论中一条非常基本和重要的定理,它把对自然数的研究转化为对其最基本的元素——素数的研究。唯一因子分解的思想从本质上讲是指以下两种性质: “存在性和唯一性”。所谓“存在性”就是指一个元素可以分解为有限多个不可约因子的乘积;“唯一性”是指这种分解表示在某种意义上来说是唯一的。

定理应用

算法实现

复制代码
 1 typedef long long ll;  2 const int maxn  = 1e6 + 7;  3 ll a[maxn], b[maxn];//a[i]表示第i个质因子,b[i]表示第i个质因子的指数 4 void fac(ll n, int& tot) {//待分解的整数和不同质因数的个数(按引用传递) 5     ll tmp = (ll)(sqrt(n) + 0.5);  6     tot = 0;  7     ll now = n;  8     for(int i = 2; i <= tmp; i++) {  9         if(now % i == 0) { 10             a[++tot] = i; 11             b[tot] = 0; 12             while(now % i == 0) { 13                 ++b[tot]; 14                 now /= i; 15             } 16         } 17     } 18     if(now != 1) {//如果剩下的不是1,那就是最大的质因数19         a[++tot] = now; 20         b[tot] = 1; 21     } 22 }
复制代码

可以用如下代码直接输出2 到100的质因数分解结果

 View Code

例题解析

lightOJ 1341 Aladd

50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信