因式分解,算术基本定理,积性函数(POJ 1452 Happy2004)
生活随笔
收集整理的這篇文章主要介紹了
因式分解,算术基本定理,积性函数(POJ 1452 Happy2004)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
- ?積性函數(shù):是指對于所有互質的整數(shù)a和b有性質f(ab) = f(a) * f(b)
- ?算術基本定理:任何一個大于1的正整數(shù)都能唯一分解為有限個質數(shù)的乘積,即N = p1^x1 * p2^x2 * p3^x3 * .... * pn^xn
POJ 1452:
題意:求2004^x的所有因子和,
? ? ? ? ?? 輸入x
? ? ? ? ?? 輸出:結果
題解:
/*****************解法*****************/ /** 設S(x)表示x的因數(shù)和* 積性函數(shù):是指對于所有互質的整數(shù)a和b有性質f(ab) = f(a) * f(b)* 算術基本定理:任何一個大于1的正整數(shù)都能唯一分解為有限個質數(shù)的乘積,即N = p1^x1 * p2^x2 * p3^x3 * .... * pn^xn2004 = 2^2 * 3 * 1672004^x = 2^2x * 3^x * 167^x* 證明:S(N) = S(p1^x1) * S(p2^x2) * S(p3^x3) * ..... * S(pn^xn)* 首先舉個例子 N = ab,S(ab) = S(a) * S(b) 且a和b都為質數(shù)* 如果單純來看N這個數(shù)字的因子有:1, a, b, ab* 則 S(N) = 1 + a + b + ab;* S(a) = 1+a, S(b) = 1+b;* 所以 S(ab) = S(a) * S(b) 成立,則滿足積性函數(shù)* 對于其中一項,如p^x的所有因數(shù)和不就是自生p不斷組合的和嗎,而p的組合有:p, p^2, p^3, p^4, ........則:p^x的因數(shù)和 = 1 + p + p^2 + p^3 + p^4 + ..... + p^x很明顯該式為等比數(shù)列,即(p^(x+1) - 1) / (p - 1)**下面開始解法:* 設S(x)表示x的因數(shù)和,inverse(x)表示x的逆元* S(2004^x) = S(2 ^ 2x) * S(3 ^ x) * S(167 ^ x)* S(2 ^ 2x) = (2^(2x+1) - 1)* S(3 ^ x) = (3^(x+1) - 1) / 2* S(167^x) = (167^(x+1) - 1) / 166* S(2004^x) = (2^(2x+1) - 1) + (3^(x+1) - 1) / 2 + (167^(x+1) - 1) / 166 有一項不是質數(shù)不能求逆元* 因為29對S取模,所以S(167 ^ x) % 29 = S(22^x)* 則 S(2004 ^ x) = (2^(2x+1)%mod - 1) + (3^(x+1)%mod - 1) * inverse(2) + (22^(x+1)-1) * inverse(21)*/ /*****************解法*****************/#include<bits/stdc++.h>using namespace std; typedef long long LL;const int mod = 29;int quick_mod(int a, int b){LL ans = 1;a %= mod;while(b){if(b & 1){ans = ans *a % mod;b--;}b >>= 1; a = a * a % mod;}return ans; }int inverse(int a){int ans = 1;int b = mod-2;a %= mod;while(b){if(b & 1){ans = ans * a % mod;b--;}b >>= 1; a = a * a % mod;}return ans; }int main() {int n;while(scanf("%d", &n) && n){int ans = 1;ans *= quick_mod(2, 2*n+1) - 1; ans %= mod;ans *= (quick_mod(3, n+1) - 1) * inverse(2); ans %= mod;ans *= (quick_mod(22, n+1) - 1) * inverse(21); ans %= mod;ans %= mod;printf("%d\n", ans);}return 0; }?
總結
以上是生活随笔為你收集整理的因式分解,算术基本定理,积性函数(POJ 1452 Happy2004)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 原根与指标,离散对数
- 下一篇: 卢卡斯定理及其卢卡斯定理的拓展