c莫比烏斯函式 數論函式相關

2021-10-13 23:32:06 字數 1543 閱讀 2881

自變數

數論函式算術函式,在不說明定義域時預設為

對於定義域為

則稱數論函式

為積性函式.

如果對於任意

也滿足

,則稱數論函式

為完全積性函式.

有一些常見的積性函式:

兩個數論函式的狄利克雷卷積定義為:

狄利克雷卷積滿足常見的運算律:

並且有

作為狄利克雷卷積的單位元,對於任意數論函式

有 類似埃氏篩,用質數來標記合數,且讓每個合數僅被自己的最小質因子標記一次,複雜度達到

此**求出了

範圍內的質數:

for(int i(2);imaxn)break;

vis[prime[j]*i]=true;

}}

利用這種思路,結合

的性質即可篩出

範圍內的

:

for(int i(2);imaxn)break;

vis[prime[j]*i]=true;

if(i%prime[j])mu[i*prime[j]]=-mu[i];

else

}}

顯然 為質數時,

根據唯一分解定理可以將整數分解為質數冪次的乘積,有一結論,若

,那麼

考慮線性篩的過程,設乙個數

的最小質因子為

篩去,設

若 ,那麼

包含了

的所有質因子,於是有:

若 ,那麼

與 互質,根據尤拉函式的積性有:

**:

for(int i(2);imaxn)break;

vis[prime[j]*i]=true;

if(i%prime[j])phi[i*prime[j]]=phi[i]*(prime[j]-1);

else

}}

對於數論函式

,求 考慮構造

與 的關係.

對於任意數論函式

,有:證明,考慮轉化為列舉

和 得到杜教篩的核心式子:

只要能找到合適的數論函式

,結合數論分塊就可以利用遞迴快速計算

複雜度

,線性篩預處理前

項的字首和能做到

計算 :

就可以很簡單地寫成**,注意**用到了

預處理前面的字首和和

進行記憶化來優化:

int summu(int x)

return ans;

}

莫比烏斯函式

問題描述 莫比烏斯函式,數論函式,由德國數學家和天文學家莫比烏斯 m?bius 1790 1868 提出。梅滕斯 mertens 首先使用 n 作為莫比烏斯函式的記號。而據說,高斯 gauss 比莫比烏斯早三十年就曾考慮過這個函式。莫比烏斯函式在數論中有著廣泛應用。莫比烏斯函式完整定義的通俗表達 1...

莫比烏斯函式

問題描述 莫比烏斯函式,數論函式,由德國數學家和天文學家莫比烏斯 m bius 1790 1868 提出。梅滕斯 mertens 首先使用 n 作為莫比烏斯函式的記號。而據說,高斯 gauss 比莫比烏斯早三十年就曾考慮過這個函式。莫比烏斯函式在數論中有著廣泛應用。莫比烏斯函式完整定義的通俗表達 1...

莫比烏斯函式

莫比烏斯函式數學定義 通俗表達 1 莫比烏斯函式 n 的定義域是n n為自然數集 2 1 1 3 當n存在平方因子時,n 0 例如4,9,16即為平方因子 4 當n是素數或奇數個不同素數之積時,n 1 5 當n是偶數個不同素數之積時,n 1 例題 根據定義模擬過程 1 include2 includ...