思路:尤拉函式的簡單應用,建議先看本部落格演算法精講裡面關於尤拉函式的介紹
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...