隨筆: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:
博客園
模板提供
:
滬江博客
国产精品无码久久综合
|
久久精品?ⅴ无码中文字幕
|
久久亚洲精品国产精品
|
91久久国产视频
|
老色鬼久久亚洲AV综合
|
韩国三级中文字幕hd久久精品
|
伊人色综合久久天天人手人婷
|
66精品综合久久久久久久
|
无码超乳爆乳中文字幕久久
|
久久精品无码专区免费
|
久久99精品国产99久久6男男
|
一本一道久久a久久精品综合
|
26uuu久久五月天
|
久久精品欧美日韩精品
|
狠狠色丁香婷婷久久综合
|
久久久久久久久波多野高潮
|
99精品伊人久久久大香线蕉
|
99久久精品日本一区二区免费
|
久久综合偷偷噜噜噜色
|
久久AⅤ人妻少妇嫩草影院
|
久久国产精品-国产精品
|
久久久久亚洲Av无码专
|
久久99精品久久久大学生
|
欧洲国产伦久久久久久久
|
国产成人精品久久
|
久久精品国产99久久丝袜
|
欧美久久久久久精选9999
|
国产福利电影一区二区三区,免费久久久久久久精
|
久久无码中文字幕东京热
|
久久久久国色AV免费观看
|
国内精品久久久久影院免费
|
欧美牲交A欧牲交aⅴ久久
|
久久国产精品无码一区二区三区
|
人妻精品久久无码专区精东影业
|
久久久久高潮综合影院
|
欧美日韩精品久久久免费观看
|
久久精品国产亚洲αv忘忧草
|
欧美一区二区久久精品
|
亚洲精品无码专区久久久
|
久久国产精品77777
|
99久久精品影院老鸭窝
|