hdu 找新朋友

2021-08-13 21:43:59 字數 788 閱讀 6836

題目:

problem description

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

input

第一行是測試資料的組數cn(case number,1

output

對於每乙個n,輸出一行新朋友的人數,這樣共有cn行輸出。

sample input

2

25608

24027

sample output

7680

16016

author

smallbeer(cml)

演算法:1.預處理求出所有數的質數

2.根據尤拉函式e(n) = n * (1- 1/p1)(1-1/p2)...(1-1/pm

) (p1,p2,..pm都是n的質數因子),求出e(n)

#include #include using namespace std; 

#define maxn 32768

int nums[ maxn ] = ;

int primes[ maxn ][ 6 ] = ;

void pre( )

} }}int main( void )

printf( "%d\n", sum );

}}

HDU 找新朋友

題目大概是小於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 ...

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號,凡是和會長是老朋友的,那麼該會員的號碼肯定...