HDU 1286 找新朋友(尤拉函式)

2021-07-04 22:06:23 字數 1161 閱讀 4358

思路:尤拉函式的簡單應用,建議先看本部落格演算法精講裡面關於尤拉函式的介紹

ac**1:

#include #include using namespace std;

int main()

}printf("%d\n",rea);

}return 0;

}

錯誤**:

#include #include using namespace std;

int main()

}if(n > 1)//這裡考慮到的是n本身就是乙個素數,,則與他互素且比他小的數為n-1;

rea -= 1;

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

}return 0;

}

ac**2:

#include #include using namespace std;

int main()

}if(n > 1)//其實這裡的n>1包含2種情況(1)n本身就是乙個素數,則與他互素且比他小的數為n-1(2)n的最後乙個素因子沒有進行rea = rea - rea / i就跳出來了

rea -= rea / n;//基於以上2種情況,這裡不能寫為rea -= 1;

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

}return 0;

}

ac**3:

先用篩選法打出素數

#include #include #include using namespace std;

int isprime[32768],prime[30000];

void doprime()}}

}int main()

}if(n > 1)

rea -= rea / n;

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

}return 0;

}

ac**4:

遞推法求尤拉函式

#include #include #define maxn 32768//不能加分號

int a[32770];

int main()

{ int i,j,t,n;

for(i=1; i

hdu 1286 找新朋友(尤拉函式)

一道赤裸裸的尤拉函式題!原來只知道尤拉這個人 真是頭髮短見識更短,慚愧,以後課下還是要了解一些其他方面的知識 嘿嘿 用了尤拉函式!這就是一道水題嗎 呵呵呵 附上尤拉函式的講解 在數論 對正整數 n,尤拉 函式是少於或等於n的數中與n 互質的數的數目。此函式以其首名研究者尤拉命名,它又稱為euler ...

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 可以推出尤拉函...

HDU1286 找新朋友 尤拉函式

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