一道赤裸裸的尤拉函式題!原來只知道尤拉這個人(真是頭髮短見識更短,慚愧,以後課下還是要了解一些其他方面的知識)
嘿嘿····
用了尤拉函式!這就是一道水題嗎 !呵呵呵························
附上尤拉函式的講解:在數論
,對正整數
n,尤拉
函式是少於或等於n的數中與n
互質的數的數目。
此函式以其首名研究者尤拉命名,它又稱為euler's totient function、
φ函式、尤拉
商數等。
例如φ(8)=4,因為1,3,5,7均和8互質。
φ函式的值 通式:φ(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本身)。
(注意:每種質因數只乙個。比如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), 證明與上述類似。
#include
#include
#include
int isprime(int n)
int main()
}scanf("%d",&t);
while(t--)
}//printf("\n");
printf("%d\n",sum);
}return 0;
}
HDU 1286 找新朋友 尤拉函式
題意 中文 就是求小於等於n的數中有多少個和n互質 即尤拉函式值 div i 表示i的最小質因數 eul i 儲存i的尤拉函式值 求尤拉函式的方法 1.eul 1 1 2.若i p k p是素數 eul i p 1 p k 1 3.若m,n互質,eul m n eul m eul n 可以推出尤拉函...
HDU 1286 找新朋友(尤拉函式)
思路 尤拉函式的簡單應用,建議先看本部落格演算法精講裡面關於尤拉函式的介紹 ac 1 include include using namespace std int main printf d n rea return 0 錯誤 include include using namespace std...
HDU1286 找新朋友 尤拉函式
新年快到了,豬頭幫協會 準備搞乙個聚會,已經知道現有會員n人,把會員從1到n編號,其中會長的號碼是n號,凡是和會長是老朋友的,那麼該會員的號碼肯定和n有大於1的公約數,否則都是新朋友,現在會長想知道究竟有幾個新朋友?請你程式設計序幫會長計算出來。第一行是測試資料的組數cn case number,1...