隨筆: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
閱讀(3141)
評論(0)
編輯
收藏
引用
所屬分類:
數據結構和算法
只有注冊用戶
登錄
后才能發表評論。
【推薦】100%開源!大型工業跨平臺軟件C++源碼提供,建模,組態!
相關文章:
POJ 2043 掃描 計算幾何
POJ 1113 凸包
POJ 3164 最小樹形圖 朱劉算法
POJ 2761 SBT 靜態數組實現
POJ 2778 自動機_矩陣乘法
HDU 2222 AC自動機
數位統計
無恥IO優化
哦哦
有上下界的可行流
網站導航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
CALENDER
<
2008年11月
>
日
一
二
三
四
五
六
26
27
28
29
30
31
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
1
2
3
4
5
6
公告
留言簿
(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)
搜索
積分與排名
積分 - 134590
排名 - 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.?獨立集,覆蓋集,支配集,最大團,最大匹配(7940)
2.?原碼 補碼 反碼 移碼(6422)
3.?POJ 計算幾何入門題目推薦(轉)(5715)
4.?POJ 1379 run away 模擬退火算法(4422)
5.?數據的浮點數表示(3958)
評論排行榜
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:
博客園
模板提供
:
滬江博客
成人a毛片久久免费播放
|
伊人久久综合热线大杳蕉下载
|
欧洲国产伦久久久久久久
|
人妻系列无码专区久久五月天
|
欧美一级久久久久久久大
|
A级毛片无码久久精品免费
|
久久久噜噜噜久久熟女AA片
|
99热成人精品热久久669
|
国产成人综合久久精品尤物
|
久久综合亚洲色一区二区三区
|
久久综合给久久狠狠97色
|
segui久久国产精品
|
亚洲色大成网站WWW久久九九
|
久久久国产精品网站
|
亚洲国产精品无码久久青草
|
亚洲国产高清精品线久久
|
欧洲成人午夜精品无码区久久
|
国产激情久久久久影院
|
久久人人爽人人爽人人片av麻烦
|
99久久精品毛片免费播放
|
免费一级做a爰片久久毛片潮
|
久久国产免费观看精品3
|
久久久噜噜噜久久
|
99久久er这里只有精品18
|
国产免费久久精品99re丫y
|
草草久久久无码国产专区
|
国内精品久久久久影院优
|
一级女性全黄久久生活片免费
|
久久精品一区二区
|
久久亚洲私人国产精品
|
中文字幕无码av激情不卡久久
|
久久99精品国产
|
国产精品对白刺激久久久
|
色婷婷综合久久久中文字幕
|
久久婷婷五月综合成人D啪
|
久久99国产亚洲高清观看首页
|
伊人情人综合成人久久网小说
|
久久久久久国产a免费观看不卡
|
国产精品久久久久久吹潮
|
91视频国产91久久久
|
久久精品国产91久久综合麻豆自制
|