題目:
problem description
新年快到了,「豬頭幫協會」準備搞乙個聚會,已經知道現有會員n人,把會員從1到n編號,其中會長的號碼是n號,凡是和會長是老朋友的,那麼該會員的號碼肯定和n有大於1的公約數,否則都是新朋友,現在會長想知道究竟有幾個新朋友?請你程式設計序幫會長計算出來。
input
第一行是測試資料的組數cn(case number,1
output
對於每乙個n,輸出一行新朋友的人數,這樣共有cn行輸出。
sample input
225608
24027
sample output
768016016
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號,凡是和會長是老朋友的,那麼該會員的號碼肯定...