詳見**:
#include #include#include
#define mod 29
using
namespace
std;
/*求2004^x次方的所有因子對29取餘,可能是由於這一年是閏年才選擇的29
我們可以對2004進行分解 2004 = 2^2 * 3 * 167,很明顯2^2 和 3 和 167 都是相互互質的
因此就可以利用到乙個數的因子和是乙個積性函式這個性質,設s(n)為這個函式
又因為s(p^n) = 1+p+p^2+...+p^n,所以乙個數被用素數的指數冪來表示的話就能夠被分解化
的表示出來s(p^n) = (p^(n+1)-1)/(p-1)
由上面的公式我們可以的出來s(p^n)%29 = (p^(n+1)-1)*(p-1)^(-1)%29
而x^(-1)就是x%p的逆元滿足 x*inv(x) = 1%p
因子2-1=1,所以可以直接算
因子3-1=2,逆元為15,因為2*15%29=1
因子167%29=22; 22-1=21的逆元是18,因為21*18%29=1
*/int _pow(int a, int
b) b >>= 1
; a *=a;
a %=mod;
}
return
ret;
}int
main()
return
0;
}
積性函式字首和
最近突然做到一些求積性函式字首和的題,用到了各種篩,有一題用到 min 25 篩法,於是好好學習了一波,運用極不熟練。後來又遇到一道杜教篩的題,結果發現自己連 phi x 字首和都不會推了?嚇得我趕緊複習 寫部落格。常見 完全 積性函式 整除分塊 dirichlet 卷積 埃氏篩 這裡還是簡單介紹一...
hdu 2879 hehe 積性函式
題目大意 he n 為小於n且滿足x 2 x mod n 的個數 hehe n he 1 he n 解題思路 1.證明p是素數時he p 2.x 2 x mod p p x x 1 因為xhe p k 2,證明類似上面的 2.證明對於不同的兩個素數p和q,he p q 4 he p he q 首先x...
積性函式求字首和
若函式f滿足 a,b互質有f a b f a f b 我們則稱f是積性函式。常見的比如尤拉函式,莫比烏斯函式,都屬於積性函式。線性篩法,利用積性函式的積性,篩素數同時可以計算積性函式。然而有些問題要求低於線性的複雜度。同樣利用積性函式的性質。舉常見的莫比烏斯函式為例。求 ni 1 i 1 n 10 ...