求約數的個數(約數個數定理)

2022-02-28 15:08:06 字數 616 閱讀 7177

最近做了乙個要求求乙個數約數個數的題,後來發現居然有這方面的定理,也就是約數個數定理,所以趕緊記下來。大概是:

對於乙個大於1正整數n可以分解質因數:n=p1^a1*p2^a2*p3^a3*…*pk^ak,

則n的正約數的個數就是(a1+1)(a2+1)(a3+1)…(ak+1) .

其中p1,p2,p3,…pk都是n的質因數;a1、a2、a3…ak是p1、p2、p3,…pk的指數。

1 #include2 #include3 #include4

using

namespace

std;

5int

main()622

if(t%i==0)23

28else

2936 i++;37}

38}39if

(flag)

40 count*=c;

41 printf("

%d\n

",count);42}

43return0;

44 }

輸入數字輸出它的約數個數,本來約數只要判除素數就行,但是打素數也挺慢就算了。

約數個數定理

編輯 對於乙個大於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...

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

定理 對於乙個大於1正整數n可以 分解質因數 則n的正約數 的個數就是 證明 省略 舉個栗子 例題 正整數378000共有多少個 正約數?解 將378000 分解質因數378000 2 4 3 3 5 3 7 1 由約數個數定理可知378000共有正約數 4 1 3 1 3 1 1 1 160個。c...

約數個數定理 約數和定理

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