定理:對於乙個大於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...