隨筆:152 文章:0 評論:129 引用:0
Headacher
學習筆記,從一點一滴做起。
C++博客
首頁
發新隨筆
發新文章
聯系
聚合
管理
歐拉函數
E(x)表示比x小的且與x互質的正整數的個數。
*若p是素數,E(p)=p-1。
*E(p^k)=p^k-p^(k-1)=(p-1)*P^(k-1)
證:令n=p^k,小于n的正整數數共有n-1即(p^k-1)個,其中與p不質的數共[p^(k-1)-1]個(分別為1*p,2*p,3*p...p(p^(k-1)-1))。
所以E(p^k)=(p^k-1)-(p^(k-1)-1)=p^k-p^(k-1).得證。
*若ab互質,則E(a*b)=E(a)*E(b),歐拉函數是積性函數.
*對任意數n都可以唯一分解成n=p1^a1*p2^a2*p3^a3*...*pn^an(pi為素數).
則E(n)=E(p1^a1)*E(p2^a2)*E(p3^a3)*...*E(pn^an)
=(p1-1)*p1^(a1-1)*(p2-1)*p2^(a2-1)*...*(pn-1)*pn^(an-1)
=(p1^a1*p2^a2*p3^a3*...*pn^an)*[(p1-1)*(p2-1)*(p3-1)*...*(pn-1)]/(p1*p2*p3*...*pn)
=n*(1-1/p1)*(1-1/p2)*...*(1-1/pn)
* E(p^k) =(p-1)*p^(k-1)=(p-1)*p^(k-2)*p
E(p^(k-1))=(p-1)*p^(k-2)
->當k>1時,E(p^k)=E(p*p^(k-1))=E(p^(k-1))*p.
(當k=1時,E(p)=p-1.)
由上式: 設P是素數,
若p是x的約數,則E(x*p)=E(x)*p.
若p不是x的約數,則E(x*p)=E(x)*E(p)=E(x)*(p-1).
*快速求歐拉函數方法:
首先來回顧一下線性篩選素數方法:
code
for
(i
=
2
;i
<=
1000000
;i
++
)
{
if
(
!
c[i])prime[len
++
]
=
i;
for
(j
=
0
;j
<
len
&&
prime[j]
*
i
<=
1000000
;j
++
)
{
c[prime[j]
*
i]
=
1
;
//
不是質數
if
(i
%
prime[j]
==
0
)
break
;
//
}
}
}
然后求歐拉函數:
Phi1
phi[
1
]
=
1
;
for
(i
=
2
; i
<
10000
; i
++
) {
if
(
!
mark[i]) {
phi[i]
=
i
-
1
;
continue
;
}
for
(j
=
0
; j
<
size
&&
prime[j]
*
prime[j]
<=
i; j
++
) {
if
(i
%
prime[j]
==
0
) {
if
(i
/
prime[j]
%
prime[j]
==
0
)
phi[i]
=
prime[j]
*
phi[i
/
prime[j]];
else
phi[i]
=
(prime[j]
-
1
)
*
phi[i
/
prime[j]];
break
;
}
}
}
由以上思想,可以在篩選素數的過程中求出歐拉函數:
Phi
for
(i
=
2
;i
<=
limit;i
++
)
{
if
(mark[i]
==
0
)
{
prime[
++
prime[
0
]]
=
i;
E[i]
=
i
-
1
;
}
for
(j
=
1
;j
<=
prime[
0
]
&&
prime[j]
*
i
<=
limit;j
++
)
{
mark[prime[j]
*
i]
=
1
;
if
(i
%
prime[j]
==
0
)
{
E[i
*
prime[j]]
=
E[i]
*
prime[j];
break
;
}
else
E[i
*
prime[j]]
=
E[i]
*
(prime[j]
-
1
);
}
}
發表于 2009-07-19 12:39
Headacher
閱讀(3131)
評論(0)
編輯
收藏
引用
所屬分類:
數據結構和算法
只有注冊用戶
登錄
后才能發表評論。
【推薦】100%開源!大型工業跨平臺軟件C++源碼提供,建模,組態!
相關文章:
POJ 2043 掃描 計算幾何
POJ 1113 凸包
POJ 3164 最小樹形圖 朱劉算法
POJ 2761 SBT 靜態數組實現
POJ 2778 自動機_矩陣乘法
HDU 2222 AC自動機
數位統計
無恥IO優化
哦哦
有上下界的可行流
網站導航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
CALENDER
<
2009年3月
>
日
一
二
三
四
五
六
22
23
24
25
26
27
28
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
公告
留言簿
(8)
給我留言
查看公開留言
查看私人留言
隨筆分類
ACM-ICPC(7)
(rss)
操作系統
(rss)
計算機組成與體系結構(2)
(rss)
數據結構和算法(34)
(rss)
數據庫
(rss)
心情日記(20)
(rss)
隨筆檔案
2010年12月 (1)
2010年9月 (1)
2010年5月 (3)
2010年4月 (3)
2010年3月 (1)
2010年2月 (2)
2010年1月 (10)
2009年12月 (1)
2009年10月 (3)
2009年9月 (6)
2009年8月 (14)
2009年7月 (8)
2009年6月 (2)
2009年5月 (17)
2009年4月 (4)
2009年3月 (5)
2009年2月 (25)
2009年1月 (9)
2008年12月 (1)
2008年11月 (30)
2008年10月 (4)
2008年7月 (2)
ACM Teammates
Qinz
(rss)
SHFACM
(rss)
wudired
(rss)
The One
May
(rss)
搜索
積分與排名
積分 - 133746
排名 - 193
最新評論
1.?re: POJ 1379 run away 模擬退火算法[未登錄]
為何按你的代碼交會RE呢?
--zhang
2.?re: POJ 1947 樹狀dp[未登錄]
評論內容較長,點擊標題查看
--Sky
3.?re: 獨立集,覆蓋集,支配集,最大團,最大匹配
評論內容較長,點擊標題查看
--fly2best
4.?re: HDU HDOJ 1004 Let the Balloon Rise 字典樹[未登錄]
尼瑪 這就是個水題
--xxx
5.?re: nuaa 1017 最大0,1子矩陣[未登錄]
1 0 1 0 1
2 1 2 1 2
3 2 2 2 0
0 3 4 3 1
1 0 5 4 2 這個寫錯了吧
第三行第三列那個2應該為3才對
--hu
閱讀排行榜
1.?獨立集,覆蓋集,支配集,最大團,最大匹配(7930)
2.?原碼 補碼 反碼 移碼(6407)
3.?POJ 計算幾何入門題目推薦(轉)(5710)
4.?POJ 1379 run away 模擬退火算法(4404)
5.?數據的浮點數表示(3940)
評論排行榜
1.?POJ 1379 run away 模擬退火算法(12)
2.?我真是太笨了……(10)
3.?PKU POJ 2186 Popular Cows 強連通分量(5)
4.?HDU HDOJ 1005 Number Sequence(4)
5.?數論中的一些公式(轉)(4)
Powered By:
博客園
模板提供
:
滬江博客
性做久久久久久免费观看
|
欧美一区二区三区久久综合
|
国产精品久久久久久福利漫画
|
亚洲女久久久噜噜噜熟女
|
久久不射电影网
|
日本精品一区二区久久久
|
久久综合给久久狠狠97色
|
久久久久久伊人高潮影院
|
日产精品久久久久久久性色
|
91精品国产91久久综合
|
亚洲人AV永久一区二区三区久久
|
亚洲精品国产成人99久久
|
日本精品久久久久影院日本
|
久久精品成人免费国产片小草
|
中文无码久久精品
|
久久综合九色欧美综合狠狠
|
欧美精品一区二区精品久久
|
久久人妻无码中文字幕
|
久久国产精品一区
|
久久国产精品久久
|
色妞色综合久久夜夜
|
色婷婷噜噜久久国产精品12p
|
青青草国产精品久久久久
|
久久久久久国产精品无码下载
|
国产精品日韩深夜福利久久
|
国产精品毛片久久久久久久
|
国产福利电影一区二区三区,免费久久久久久久精
|
欧美久久综合九色综合
|
国内精品久久久久久野外
|
无码精品久久久天天影视
|
久久精品国产2020
|
久久精品人妻中文系列
|
精品无码久久久久国产动漫3d
|
亚洲欧美一级久久精品
|
亚洲国产日韩综合久久精品
|
亚洲欧美日韩久久精品
|
久久人妻AV中文字幕
|
亚洲第一极品精品无码久久
|
日产精品久久久久久久
|
成人久久久观看免费毛片
|
2021少妇久久久久久久久久
|