新年快到了,「豬頭幫協會」準備搞乙個聚會,已經知道現有會員n人,把會員從1到n編號,其中會長的號碼是n號,凡是和會長是老朋友的,那麼該會員的號碼肯定和n有大於1的公約數,否則都是新朋友,現在會長想知道究竟有幾個新朋友?請你程式設計序幫會長計算出來。
input第一行是測試資料的組數cn(case number,1sample output
768016016
個人心得:找互質數,樸素演算法會超時,在了解了容斥原理後,根據那個公式sum=n*(p1-1)(p2-1)...(pi-1)/p1*p2*p3...pi;
p1到pi為n的素數因子。沒學離散,容斥只是簡單了解了下。看了還好,推導起來真的是乙個頭大!果斷送人頭出去,不玩了...絕望
附上**吧
1 #include2 #include3 #include4 #include5 #include6 #include7 #include
8using
namespace
std;
9#define k 100003
10int
n;11
long
long
sum;
12int x[10000
];13
intflag;
14bool prime(int
x)15
23void
getsum()
2430
for(int i=1;i)
3135 sum=n*t1/t2;
3637}38
intmain()
3948
getsum();
49 cout5051
5253}54
return0;
5556
57 }
找新朋友(尤拉函式)
新年快到了,豬頭幫協會 準備搞乙個聚會,已經知道現有會員n人,把會員從1到n編號,其中會長的號碼是n號,凡是和會長是老朋友的,那麼該會員的號碼肯定和n有大於1的公約數,否則都是新朋友,現在會長想知道究竟有幾個新朋友?請你程式設計序幫會長計算出來。input第一行是測試資料的組數cn case num...
找新朋友(尤拉互質)
找新朋友 time limit 1000msmemory limit 32768kb64bit io format i64d i64u submit status description 新年快到了,豬頭幫協會 準備搞乙個聚會,已經知道現有會員n人,把會員從1到n編號,其中會長的號碼是n號,凡是和會...
hdu 1286 找新朋友(尤拉函式)
一道赤裸裸的尤拉函式題!原來只知道尤拉這個人 真是頭髮短見識更短,慚愧,以後課下還是要了解一些其他方面的知識 嘿嘿 用了尤拉函式!這就是一道水題嗎 呵呵呵 附上尤拉函式的講解 在數論 對正整數 n,尤拉 函式是少於或等於n的數中與n 互質的數的數目。此函式以其首名研究者尤拉命名,它又稱為euler ...