約數個數定理and約數和定理

2021-08-05 19:37:26 字數 2467 閱讀 2828

定理:對於乙個大於1正整數n可以

分解質因數

:則n的正約數

的個數就是

。證明 :省略

舉個栗子:

例題:正整數378000共有多少個

正約數?

解:將378000

分解質因數378000=2^4×3^3×5^3×7^1

由約數個數定理可知378000共有正約數(4+1)×(3+1)×(3+1)×(1+1)=160個。

code(求約數個數):

int prime[maxn],nprime;    

int vis[maxn];

void getprime()

for(int i = 2; i <= 450; i++)

}

int factor_count(int n)

ans *= (a+1);

}

}

if(n > 1)

ans *= 2;

return ans;

}

對於乙個大於1正整數n可以

分解質因數:n=p1^a1*p2^a2*p3^a3*…*pk^ak,

則由 約數個數定理可知n的正約數有(a₁+1)(a₂+1)(a₃+1)…(ak+1)個,

那麼n的(a₁+1)(a₂+1)(a₃+1)…(ak+1)個正約數的和為

f(n)=(p1^0+p1^1+p1^2+…p1^a1)(p2^0+p2^1+p2^2+…p2^a2)…(pk^0+pk^1+pk^2+…pk^ak)

證明:若n可以

分解質因數:n=p1^a1*p2^a2*p3^a3*…*pk^ak,

可知p1^a1的約數有:p1^0, p1^1, p1^2......p1^a1

…同理可知,pk^ak的約數有:pk^0, pk^1, pk^2......pk^ak ;

實際上n的約數是在p1^a1、p2^a2、...、pk^ak每乙個的約數中分別挑乙個相乘得來,

可知共有(a₁+1)(a₂+1)(a₃+1)…(ak+1)種挑法,即約數的個數。

由 乘法原理可知它們的和為

f(n)=(p1^0+p1^1+p1^2+…p1^a1)(p2^0+p2^1+p2^2+…p2^a2)…(pk^0+pk^1+pk^2+…pk^ak)

例題:正整數360的所有正約數的和是多少?

解:將360分解質因數可得

360=2^3*3^2*5^1

由約數和定理可知,360所有正約數的和為

(2^0+2^1+2^2+2^3)×(3^0+3^1+3^2)×(5^0+5^1)=(1+2+4+8)(1+3+9)(1+5)=15×13×6=1170

可知360的約數有1、2、3、4、5、6、8、9、10、12、15、18、

20、24、30、36、40、45、60、72、90、120、180、360;則它們的和為

1+2+3+4+5+6+8+9+10+12+15+18+20+24+30+36+40+45+60+72+90+120+180+360=1170

所有因子個數τ(n)與所有因子的和σ(n)都是乘(積)性函式。

定義1:因子和函式σ定義為整數n的所有正因子之和,記為σ(n)。

定義2:因子個數函式τ定義為正整數n的所有正因子個數,記為τ(n)。

定理1:設p是乙個素數,a是乙個正整數,那麼

σ(n)=1+p+p^2+……+p^a=【p^(a+1)-1】/(p-1)

τ(n)=a+1

定理2:設正整數n有素因子分解 n =(p1^α1)*(p2^α2)*(p3^α3)* ....... *(pk^αk),那麼

σ(n)=【(p1^α1)-1】/(p1-1) * 【(p2^α2)-1】/(p2-1) * .....  *【(pk^αk)-1】/(pk-1)

τ(n)=(α1+1)*(α2+1)*(α3+1)*......*(αk+1)

code(求約數和)

int prime[maxn],nprime;  

int vis[maxn];

void getprime()

for(int i = 2; i <= 450; i++)

}

int pow_mod(int a,int n,int mod)

return ans;

}

int factor_sum(int n)

ans *= (pow_mod(prime[i],sum+1,mod)-1)/(prime[i]-1);

} }

if(n > 1)

ans *= ans(n*n-1)/(n-1);

return ans;

}

約數個數定理 約數和定理

1 如果我們要求乙個數的所有因數的個數會怎麼去求呢?首先想到最簡單的方法就是暴力求解就可以。當然資料小 或者測試資料少就很簡單就可以過了。2 如果求乙個區間內的數的所有因數的個數呢?或者求乙個區間內的數的因數最大的數以及最大的因數 正因數 的個數?這樣的話,資料大一些,組數多一些,可能就要tle,所...

約數個數定理 約數和定理

1 如果我們要求乙個數的所有因數的個數會怎麼去求呢?首先想到最簡單的方法就是暴力求解就可以。當然資料小 或者測試資料少就很簡單就可以過了。2 如果求乙個區間內的數的所有因數的個數呢?或者求乙個區間內的數的因數最大的數以及最大的因數 正因數 的個數?這樣的話,資料大一些,組數多一些,可能就要tle,所...

約數個數定理

編輯 對於乙個大於1正整數n可以 分解質因數 則n的 正約數的個數就是 其中a 1 a2 a 3 ak是p 1 p2 p 3,p k的指數。編輯首先同上,n可以 分解質因數 n p1 a1 p2 a2 p3 a3 pk ak,由約數定義可知p1 a1的約數有 p1 0,p1 1,p1 2.p1 a1...