瀹氫箟錛?nbsp; 瀵逛簬姝f暣鏁皀錛?#966;(n)鏄皬浜庢垨絳変簬n鐨勬鏁存暟涓紝涓巒浜掕川鐨勬暟鐨勬暟鐩紱
渚嬪: φ(8) = 4, 鍥犱負1錛?/span>3錛?/span>5錛?鍧囧拰8浜掕川銆?br>鎬ц川錛?nbsp; 1. 鑻鏄川鏁幫紝φ錛坧錛?/span>= p-1.
2. 鑻鏄川鏁皃鐨刱嬈″箓錛?#966;錛坣錛?/span>= 錛坧-1錛塸^(k-1)
鍥犱負闄や簡p鐨勫嶆暟閮戒笌n浜掕川
3. 嬈ф媺鍑芥暟鏄Н鎬у嚱鏁幫紝鑻錛宯浜掕川錛?#966;錛坢n錛?/span>= φ(m)φ(n)
鏍規嵁榪?鏉℃ц川鎴戜滑灝卞彲浠ラ鍑轟竴涓暣鏁扮殑嬈ф媺鍑芥暟鐨勫叕寮忥紝鍥犱負涓涓暟鎬誨彲浠ヤ竴浜涜川鏁扮殑涔樼Н鐨勫艦寮忋?br> E(k) = (p1-1)(p2-1)…(pi-1)*(p1^(a1-1))(p2^(a2-1))…(pi^(ai-1))
= k*(p1-1)(p2-1)…(pi-1)/(p1*p2*…pi)
= k*(1-1/p1)*(1-1/p2)…(1-1/pk)
鍦ㄧ▼搴忎腑鍒╃敤嬈ф媺鍑芥暟濡備笅鎬ц川錛屽彲浠ュ揩閫熸眰鍑烘鎷夊嚱鏁扮殑鍊?a涓篘鐨勮川鍥犵礌)
鑻?N%a==0 && (N/a)%a==0) 鍒欐湁:E(N)=E(N/a)*a;
鑻?N%a==0 && (N/a)%a!=0) 鍒欐湁:E(N)=E(N/a)*(a-1);
浠ヤ笅鏄?縐嶆眰嬈ф媺鍑芥暟鐨勭畻娉?br>
1 void init()
2 {
3 __int64 i,j;
4 e[1] = 1;
5 for(i=2;i<=N;i++)
6 if(!e[i])
7 {
8 for(j=i; j<=N; j+=i)
9 {
10 if (!e[j])
11 e[j] = j;
12 e[j] = e[j] / i * (i-1);
13 }
14 }
15 }
鍒╃敤绱犳暟絳涢夛細
void init()
{
__int64 i, j;
p[0] = 1; //璁板綍绱犳暟涓暟
p[1] = 2;
for (i=3; i<N; i+=2)
{
if (hash[i])
continue;
p[++p[0]] = i;
for (j=i*i; j<N; j+=i)
hash[j] = true;
} //絳涚礌鏁?/span>
e[1] = 1;
for (i=1; i<=p[0]; i++)
e[p[i]] = p[i] - 1; //鍒濆鍖栫礌鏁扮殑phi
for (i=2; i<N; i++)
{
if(!e[i])
{
for (j=1; j<=p[0]; j++)
if (i % p[j]==0)
{
if (i / p[j] % p[j])
e[i] = e[i / p[j]] * e[p[j]];
else
e[i] = e[i / p[j] ]* p[j];
break;
} // 鍒╃敤涓婅堪鎬ц川姹傝В
}
}
return ;
}
鏄庢樉絎竴縐嶇殑緙栫▼澶嶆潅搴﹁浣庡緢澶?br>鎵浠ワ紝涓鑸儏鍐典笅錛圢涓嶆槸寰堝ぇ錛夛紝閲囩敤絎竴縐嶅嵆鍙紱
璐村湪榪欓噷渚涗互鍚庡涔?img border=0 src="http://www.shnenglu.com/Emoticons/QQ/13.gif" width=20 height=20>

]]>