最近做了乙個要求求乙個數約數個數的題,後來發現居然有這方面的定理,也就是約數個數定理,所以趕緊記下來。大概是:
對於乙個大於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 #include4using
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,所...