51nod 1204 莫比烏斯函式之和

2021-08-27 23:39:30 字數 653 閱讀 9496

今天來做莫比烏斯,這個題就是裸的莫比烏斯,但是由於如果 想打表做的話,並不是網上寫的那樣就做不了,雖然說不能完全打出素數表,但是仔細想乙個的話,我們可以先做乙個1e6的素數表,然後進行素數分解,如果不斷進行分解後,n的值還是不為1的話,這就說明n是乙個很大的素數,因為在給定的資料範圍內每個數都被它的最小素因子篩去,如果乙個合數的最小素因子是1e6這個級別的,那樣這個數就超出了資料範圍,綜上,肯定存在乙個我們用1e6的素數表篩不到的大素數。這樣單獨判斷乙個就好

#include

#include

#include

using

namespace

std;

typedef

long

long ll;

const

int maxn = 1e7 + 10;

ll prime[maxn];

void getprime()

}}int miu(int n)

}if(n > 1) ans *= -1; // 判斷是否是乙個大素數

return ans;

}int main()

return

0;}

反思

篩法寫的不熟。

主觀想象沒有推理。記憶空間有誤。

51nod 1240 莫比烏斯函式

莫比烏斯函式,由德國數學家和天文學家莫比烏斯提出。梅滕斯 mertens 首先使用 n miu n 作為莫比烏斯函式的記號。據說,高斯 gauss 比莫比烏斯早三十年就曾考慮過這個函式 具體定義如下 如果乙個數包含平方因子,那麼miu n 0。例如 miu 4 miu 12 miu 18 0。如果乙...

51nod 1240 莫比烏斯函式

莫比烏斯函式,由德國數學家和天文學家莫比烏斯提出。梅滕斯 mertens 首先使用 n miu n 作為莫比烏斯函式的記號。據說,高斯 gauss 比莫比烏斯早三十年就曾考慮過這個函式 具體定義如下 如果乙個數包含平方因子,那麼miu n 0。例如 miu 4 miu 12 miu 18 0。如果乙...

莫比烏斯函式(51nod 1240)

思路 分解質因數,每找到乙個質數,判斷是否為質因數,及其對應的次數,一旦出現平方因子,輸出0 如果沒有出現平方因子,原數nu m 除去這個質因數 i 得到商nu m,num i,繼續尋找下乙個質因數,如果尋找的質因數超過了nu m 說明剩餘的數nu m 是乙個質數,則已經找到最後乙個質因數,無需繼續...