唯一分解定理

Posted summer20020929

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了唯一分解定理相关的知识,希望对你有一定的参考价值。

唯一分解定理内容:每个正整数都可以分解成若干质数的乘积,质数从小到大排列(乘积可以是0,1,2......)

用数学式子表示则:对任一整数a>1,有a= (p1^a1)*(p2^a2)…(pn^an) ,其中p1<p2<…<pn均为素数,而a1,a2…,an是正整数。(1是个特殊情况,不算入)

那么,背记重点来了:

1.a的正约数的个数:(每个都是从a0到an)

技术分享图片

举个例子:

  a=40=2^3*5^1;

  n=(1+3)(1+1)=8;

  1 40 2 20 4 10 5 8

2.a的正约数的和为:

技术分享图片

  还是上面的例子

  sum=90;

  sum=(1+2+4+8)(1+5)=90,bingo!

3.a的欧拉函数

技术分享图片

   fy(40)=16;

  fy(40)=2^2*5^0*(2-1)*(5-1)=16,bingo!

 

应用:

1.求n的质因数分解:

 1 k=2;
 2 while (k*k<=a)
 3     {if (a%k==0) 
 4         while (a%k==0)
 5             {
 6              a/=k; …//对因子重数的其他处理 
 7              }
 8      k++;
 9     }
10 if (a>1) …//再对分解最后的那个质数进行处理 

2.求n的约数和

 1 int sum ( int n )
 2 {int k, res, tmp;
 3  k=2; res=1;
 4  while (k*k<=a)
 5     {tmp=1;
 6       while (n%k==0) {n/=k;tmp=tmp*k+1;} 
 7       res*=tmp;
 8       k++;
 9     }
10  if (n>1)  res*=(1+n);
11  return res;
12 } 

 

 

以上是关于唯一分解定理的主要内容,如果未能解决你的问题,请参考以下文章

唯一分解定理

UVA - 11388 唯一分解定理

HDU 1452 Happy 2004(唯一分解定理)

阶乘约数——蓝桥杯python组国赛题(C++唯一分解定理)

唯一分解定理

唯一分解定理