尤拉函式求互質的個數
當時在res = res - res / i 出沒有想明白, 其實是挺簡單的, 就是乙個公式, &(n) = n * (1 - 1 / p1) * (1 - 1 / p2) * … (1 - 1 / pr);
每次是res等於n,那麼只更新res, 那麼為什麼不用n呢, 因為n有更大的用處, 那就是判斷終點, 那什麼是重點呢 ? 其實就是咱們要用的素數大於n的時候, 就應該停止了, 但是每次n的值是要更新的, 要更新到不能被本次的值乘以某個數得到, 意思是, 咱們的素數只用一次, 而且要把這個素數的k次冪全部用掉, 其實就是再以後不再用它了;
#include
#include
#include
#include
#include
#include
using
namespace std;
typedef
long
long ll;
inteuler
(int n)}}
return res;
}int
main
(void
)
以下**是 的博主的:
請思考以下問題:
任意給定正整數n,請問在小於等於n的正整數之中,有多少個與n構成互質關係?(比如,在1到8之中,有多少個數與8構成互質關係?)計算這個值的方法就叫做尤拉函式,以φ(n)表示。在1到8之中,與8形成互質關係的是1、3、5、7,所以 φ(n) = 4。
φ(n) 的計算方法並不複雜,但是為了得到最後那個公式,需要一步步討論。
第一種情況
如果n=1,則 φ(1) = 1 。因為1與任何數(包括自身)都構成互質關係。
第二種情況
如果n是質數,則 φ(n)=n-1 。因為質數與小於它的每乙個數,都構成互質關係。比如5與1、2、3、4都構成互質關係。
第三種情況
如果n是質數的某乙個次方,即 n = p^k (p為質數,k為大於等於1的整數),則
比如 φ(8) = φ(2^3) =2^3 - 2^2 = 8 -4 = 4。
這是因為只有當乙個數不包含質數p,才可能與n互質。而包含質數p的數一共有p^(k-1)個,即1×p、2×p、3×p、...、p^(k-1)×p,把它們去除,剩下的就是與n互質的數。
上面的式子還可以寫成下面的形式:
可以看出,上面的第二種情況是 k=1 時的特例。
第四種情況
如果n可以分解成兩個互質的整數之積,
n = p1 × p2則
φ(n) = φ(p1p2) = φ(p1)φ(p2)即積的尤拉函式等於各個因子的尤拉函式之積。比如,φ(56)=φ(8×7)=φ(8)×φ(7)=4×6=24。
這一條的證明要用到"中國剩餘定理",這裡就不展開了,只簡單說一下思路:如果a與p1互質(a第五種情況
因為任意乙個大於1的正整數,都可以寫成一系列質數的積。
根據第4條的結論,得到
再根據第3條的結論,得到
也就等於
這就是尤拉函式的通用計算公式。比如,1323的尤拉函式,計算過程如下:
請思考以下問題:
任意給定正整數n,請問在小於等於n的正整數之中,有多少個與n構成互質關係?(比如,在1到8之中,有多少個數與8構成互質關係?)計算這個值的方法就叫做尤拉函式,以φ(n)表示。在1到8之中,與8形成互質關係的是1、3、5、7,所以 φ(n) = 4。
φ(n) 的計算方法並不複雜,但是為了得到最後那個公式,需要一步步討論。
第一種情況
如果n=1,則 φ(1) = 1 。因為1與任何數(包括自身)都構成互質關係。
第二種情況
如果n是質數,則 φ(n)=n-1 。因為質數與小於它的每乙個數,都構成互質關係。比如5與1、2、3、4都構成互質關係。
第三種情況
如果n是質數的某乙個次方,即 n = p^k (p為質數,k為大於等於1的整數),則
比如 φ(8) = φ(2^3) =2^3 - 2^2 = 8 -4 = 4。
這是因為只有當乙個數不包含質數p,才可能與n互質。而包含質數p的數一共有p^(k-1)個,即1×p、2×p、3×p、...、p^(k-1)×p,把它們去除,剩下的就是與n互質的數。
上面的式子還可以寫成下面的形式:
可以看出,上面的第二種情況是 k=1 時的特例。
第四種情況
如果n可以分解成兩個互質的整數之積,
n = p1 × p2則
φ(n) = φ(p1p2) = φ(p1)φ(p2)即積的尤拉函式等於各個因子的尤拉函式之積。比如,φ(56)=φ(8×7)=φ(8)×φ(7)=4×6=24。
這一條的證明要用到"中國剩餘定理",這裡就不展開了,只簡單說一下思路:如果a與p1互質(a第五種情況
因為任意乙個大於1的正整數,都可以寫成一系列質數的積。
根據第4條的結論,得到
再根據第3條的結論,得到
也就等於
這就是尤拉函式的通用計算公式。比如,1323的尤拉函式,計算過程如下:
CSRF XSS Cookies 的一些見解
csrf 攻擊 在瀏覽器中插入了 惡意鏈結 並在使用者訪問之時讓使用者訪問,達到使用使用者的cooikes達到連線指定伺服器客戶的的驗證資訊,並進行一些簡單的操作。比如 防禦 最簡單的,可以通過驗證cookies進行一些防禦。例如在使用者操作驗證中,判斷是否又cookies傳過來,如果沒有則是惡意鏈...
指標的一些見解
在c c 最牛皮也是最令人頭疼的就是指標了,記得那時是乙個炎熱的下午,老師吐出了那兩個讓我畢生難忘的字 指標 然後太熱了睡著了 還記得當時,老師就提醒我們指標是c強大的重要部分,但同時如果處理不好,問題也很大。但其實吧,學習指標的壓力也不是那麼大的。自行補圖 typename pointname 如...
自用 關於尤拉函式以及逆元的一些模板
首先我們要求 x 可以先將其分解成 apii 的形式,其中 a 是素數。然後可以推導出公式 x apii api 1i 然後這個可以實現為 x x ai 1 這樣就可以在 時間內出解了。線性篩!因為尤拉函式是積性函式,所以我們可以採用線性篩。過程見下方 getphi 函式。首先有尤拉公式 x p p...