HDU 找新朋友

2021-06-20 23:12:49 字數 1166 閱讀 8871

題目大概是小於n的數中有多少個與n互素的數。這裡可以用尤拉公式。

φ函式的值  通式:φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn),其中p1, p2……pn為x的所有質因數,x是不為0的整數。φ(1)=1(唯一和1

互質的數(小於等於1)就是1本身)。 (注意:每種質因數只乙個。比如12=2*2*3那麼φ(12)=12*(1-1/2)*(1-1/3)=4

若n是質數p的k次冪,φ(n)=p^k-p^(k-1)=(p-1)p^(k-1),因為除了p的倍數外,其他數都跟n互質。

設n為正整數,以 φ(n)表示不超過n且與n互

素的正整數的個數,稱為n的尤拉函式值,這裡函式

φ:n→n,n→φ(n)稱為尤拉函式。

尤拉函式是

積性函式——若m,n互質,φ(mn)=φ(m)φ(n)。

特殊性質:當n為奇數時,φ(2n)=φ(n), 證明與上述類似。

設a, b, c是跟m, n, mn互質的數的集,據中國

剩餘定理,a*b和c可建立一一對應的關係。因此φ(n)的值使用

算術基本定理便知,

若n= ∏p^(α(下標p))

p|n則φ(n)=∏(p-1)p^(α(下標p)-1)=n∏(1-1/p)

p|n p|n

例如φ(72)=φ(2^3×3^2)=(2-1)2^(3-1)×(3-1)3^(2-1)=24

與尤拉定理、

費馬小定理的關係

對任何兩個互質的正整數a, m, m>=2有

a^φ(m)≡1(mod m)

即尤拉定理

當m是質數p時,此式則為:

a^(p-1)≡1(mod m)

即費馬小定理。

#include #includeusing namespace std;

int prime(int n)//判斷素數

if(i<=k)

return 0;

else

return 1;

}int count1(int m)

{ int i,k=0,s=1,a[100],j;

if(prime(m)||(m==1))//特殊情況處理

return m-1;

for(i=2;i>n)

{for(i=0;i>m;

cout<

hdu 找新朋友

題目 problem description 新年快到了,豬頭幫協會 準備搞乙個聚會,已經知道現有會員n人,把會員從1到n編號,其中會長的號碼是n號,凡是和會長是老朋友的,那麼該會員的號碼肯定和n有大於1的公約數,否則都是新朋友,現在會長想知道究竟有幾個新朋友?請你程式設計序幫會長計算出來。inpu...

hdu 1286 找新朋友

problem description 新年快到了,豬頭幫協會 準備搞乙個聚會,已經知道現有會員n人,把會員從1到n編號,其中會長的號碼是n號,凡是和會長是老朋友的,那麼該會員的號碼肯定和n有大於1的公約數,否則都是新朋友,現在會長想知道究竟有幾個新朋友?請你程式設計序幫會長計算出來。input 第...

HDU 1286 找新朋友

time limit 1000ms memory limit 32768kb 64bit io format i64d i64u description 新年快到了,豬頭幫協會 準備搞乙個聚會,已經知道現有會員n人,把會員從1到n編號,其中會長的號碼是n號,凡是和會長是老朋友的,那麼該會員的號碼肯定...