隨筆: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
<
2025年6月
>
日
一
二
三
四
五
六
25
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
公告
留言簿
(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)
搜索
積分與排名
積分 - 133723
排名 - 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:
博客園
模板提供
:
滬江博客
久久综合亚洲色HEZYO国产
|
18岁日韩内射颜射午夜久久成人
|
久久精品a亚洲国产v高清不卡
|
日韩人妻无码一区二区三区久久
|
久久亚洲精品中文字幕
|
一级a性色生活片久久无
|
国产精品亚洲综合久久
|
久久精品国产亚洲AV无码娇色
|
国产精品久久久久久福利漫画
|
久久成人影院精品777
|
欧美一级久久久久久久大片
|
天天躁日日躁狠狠久久
|
国产精品免费久久久久电影网
|
亚洲美日韩Av中文字幕无码久久久妻妇
|
久久精品一区二区三区AV
|
97久久精品人人澡人人爽
|
精品多毛少妇人妻AV免费久久
|
人人狠狠综合久久亚洲88
|
国产精品久久久香蕉
|
欧美久久综合性欧美
|
无码人妻久久一区二区三区
|
久久精品无码一区二区app
|
久久亚洲国产成人精品性色
|
久久强奷乱码老熟女网站
|
精品久久一区二区三区
|
亚洲αv久久久噜噜噜噜噜
|
欧美激情精品久久久久久久九九九
|
久久国产精品99国产精
|
亚洲国产精品18久久久久久
|
久久伊人精品青青草原日本
|
国内精品久久久久久中文字幕
|
国产精品久久久天天影视
|
久久亚洲精精品中文字幕
|
无码国产69精品久久久久网站
|
久久久久久久久波多野高潮
|
色8激情欧美成人久久综合电
|
国产精品欧美久久久久天天影视
|
亚洲αv久久久噜噜噜噜噜
|
久久综合亚洲色HEZYO社区
|
无码人妻久久一区二区三区蜜桃
|
久久青青草原亚洲av无码
|