隨筆: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:
博客園
模板提供
:
滬江博客
国产精品99久久精品
|
久久久久婷婷
|
国产精品福利一区二区久久
|
97久久久久人妻精品专区
|
99久久国产综合精品网成人影院
|
狠狠久久综合伊人不卡
|
7777精品久久久大香线蕉
|
久久棈精品久久久久久噜噜
|
久久久久无码精品国产app
|
亚洲av伊人久久综合密臀性色
|
91秦先生久久久久久久
|
久久国语露脸国产精品电影
|
久久伊人精品青青草原高清
|
久久久久久伊人高潮影院
|
国产无套内射久久久国产
|
高清免费久久午夜精品
|
中文字幕久久精品无码
|
久久综合狠狠综合久久97色
|
久久亚洲精品视频
|
99久久人妻无码精品系列
|
精品久久久久久中文字幕大豆网
|
国产三级精品久久
|
国产精品永久久久久久久久久
|
国产美女亚洲精品久久久综合
|
久久精品www
|
国产精品一久久香蕉产线看
|
国产韩国精品一区二区三区久久
|
久久天天躁狠狠躁夜夜躁2014
|
久久久久国色AV免费看图片
|
国内精品久久久久久不卡影院
|
久久中文娱乐网
|
精品久久人人妻人人做精品
|
亚洲午夜久久久精品影院
|
国产 亚洲 欧美 另类 久久
|
999久久久免费国产精品播放
|
久久精品国产91久久综合麻豆自制
|
亚洲国产精品无码成人片久久
|
国内精品伊人久久久影院
|
国内精品久久久久影院老司
|
亚洲精品无码久久一线
|
久久久女人与动物群交毛片
|