Euler函數: m = p1^r1 * p2^r2 * …… * pn^rn ai >= 1 , 1 <= i <= n Euler函數: 定義:phi(m) 表示小于等于m并且與m互質的正整數的個數。 phi(m) = p1^(r1-1)*(p1-1) * p2^(r2-1)*(p2-1) * …… * pn^(rn-1)*(pn-1) = m*(1 - 1/p1)*(1 - 1/p2)*……*(1 - 1/pn) = p1^(r1-1)*p2^(r2-1)* …… * pn^(rn-1)*phi(p1*p2*……*pn) 定理:若(a , m) = 1 則有 a^phi(m) = 1 (mod m) 即a^phi(m) - 1 整出m 在實際代碼中可以用類似素數篩法求出 for (i = 1 i < MAXN i++) phi[i] = i for (i = 2 i < MAXN i++) if (phi[i] == i) { for (j = i j < MAXN j += i) { phi[j] /= i phi[j] *= i - 1 } } 容斥原理:定義phi(p) 為比p小的與p互素的數的個數 設n的素因子有p1, p2, p3, … pk 包含p1, p2…的個數為n/p1, n/p2… 包含p1*p2, p2*p3…的個數為n/(p1*p2)… phi(n) = n - sigm_[i = 1](n/pi) + sigm_[i!=j](n/(pi*pj)) - …… +- n/(p1*p2……pk) = n*(1 - 1/p1)*(1 - 1/p2)*……*(1 - 1/pk)
上傳時間: 2014-01-10
上傳用戶:wkchong
//Euler 函數前n項和 /* phi(n) 為n的Euler原函數 if( (n/p) % i == 0 ) phi(n)=phi(n/p)*i else phi(n)=phi(n/p)*(i-1) 對于約數:divnum 如果i|pr[j] 那么 divnum[i*pr[j]]=divsum[i]/(e[i]+1)*(e[i]+2) //最小素因子次數加1 否則 divnum[i*pr[j]]=divnum[i]*divnum[pr[j]] //滿足積性函數條件 對于素因子的冪次 e[i] 如果i|pr[j] e[i*pr[j]]=e[i]+1 //最小素因子次數加1 否則 e[i*pr[j]]=1 //pr[j]為1次 對于本題: 1. 篩素數的時候首先會判斷i是否是素數。 根據定義,當 x 是素數時 phi[x] = x-1 因此這里我們可以直接寫上 phi[i] = i-1 2. 接著我們會看prime[j]是否是i的約數 如果是,那么根據上述推導,我們有:phi[ i * prime[j] ] = phi[i] * prime[j] 否則 phi[ i * prime[j] ] = phi[i] * (prime[j]-1) (其實這里prime[j]-1就是phi[prime[j]],利用了歐拉函數的積性) 經過以上改良,在篩完素數后,我們就計算出了phi[]的所有值。 我們求出phi[]的前綴和 */
上傳時間: 2016-12-31
上傳用戶:gyq
int main(int argc,char *argv[]) { char ch while(true) { printf("*************************************\n") printf(" 1.Reader Priority\n") printf(" 2.Writer Priority\n") printf(" 3.Exit to Windows\n") printf("*************************************\n") printf("Enter your choice(1,2,3): ") do{ ch=(char)_getch() }while(ch!= 1 &&ch!= 2 &&ch!= 3 ) system("cls") if(ch== 3 ) return 0 else if(ch== 1 ) ReaderPriority("thread.dat") else WriterPriority("thread.dat") printf("\nPress Any Key to Coutinue:") _getch() system("cls") } return 0
上傳時間: 2017-01-06
上傳用戶:gonuiln
Visual 開發 希望對你們有幫助 public static int Rom(int n, int m)//雙寄或雙偶 { int count = 0 //第一排Y坐標上要幾個 if (n < m) { for (int i = 1 i <= n i = i + 2) { count++ } } else { for (int j = 1 j <= m j = j + 2) { count++ } } return count }
上傳時間: 2013-12-13
上傳用戶:懶龍1988
PC與單片機雙向通訊智能溫控程序 #include <AT89X51.H> #include <intrins.h> #define Key_UP P1_0 #define Key_DOWN P1_1 #define Key_SET P1_2 #define RelayOutPort P2_0 #define LEDPort P0 #define DELPort P2_1 #define LEDTwoC P3_6 #define LEDThreeC P3_7 #define TMPort P2_7 #define INBUF_LEN 5 //數據長度 unsigned char inbuf1[INBUF_LEN]={ 0 , 0 , 0 , 0 , 0 } //發送緩沖區 unsigned char inbuf2[50] //接收緩沖區 unsigned char count3 void init_serialcomm( void ) { SCON = 0x50 //SCON: serail mode 1, 8-bit UART, enable ucvr TMOD |= 0x20 //TMOD: timer 1, mode 2, 8-bit reload PCON |= 0x80 //SMOD=1 TH1 = 0xFA //Baud:4800 fosc=11.0592MHz IE |= 0x90 //Enable Serial Interrupt TR1 = 1 // timer 1 run } //向串口發送一個字符 void send_char_com( unsigned char ch) { SBUF=ch while (TI== 0 ) TI= 0
標簽: include intrins define Key_UP
上傳時間: 2014-11-29
上傳用戶:風之驕子
程式描述:使用Cypress的Cy7C68013A晶片進行設計,實現Slave FIFO模式的資料獲取。程式包括USB韌體程式以及主機程式。 安裝:把來源程式碼複製到硬碟特定目錄下,使用Keil C編譯器和Visual C++ 6.0運行即可。 注意:可以首先使用Cypress的測試工具進行韌體程式的測試,以確保韌體程式的正確性。
標簽: Cypress 68013A C68013 68013
上傳時間: 2013-12-18
上傳用戶:1427796291
HD7279(A)是一片具有串行接口的,可同時驅動8位共陰式數碼管(或64只獨立LED)的智能顯示驅動芯片,該芯片同時還可連接多達64鍵的鍵盤矩陣。 HD7279內部含有譯碼器,可直接接受16進制碼,HD7279A還同時具有2種譯碼方式,HD7279(A)還具有多種控制指令,如消隱、閃爍、左移、右移、段尋址等。
上傳時間: 2017-02-10
上傳用戶:ljt101007
算法思路: 1.如果只有一個金片,則把該金片從源移動到目標棒,結束。 2.如果有n個金片,則把前n-1個金片移動到輔助的棒,然后把自己移動到目標棒,最后再把前n-1個移動到目標棒. 3.單純對于有N個金片要挪動的步數求出, 可以使用遞推方法,滿足遞推方程f(i) = f(i - 1) * 2 + 1
標簽: 算法
上傳時間: 2017-03-04
上傳用戶:leehom61
L3_1.m: 純量量化器的設計(程式) L3_2.m: 量化造成的假輪廓(程式) L3_3.m: 向量量化器之碼簿的產生(程式) L3_4.m: 利用LBG訓練三個不同大小與維度的碼簿並分別進行VQ(程式) gau.m: ML量化器設計中分母的計算式(函式) gau1.m: ML量化器設計中分子的計算式(函式) LBG.m: LBG訓練法(函式) quantize.m:高斯機率密度函數的非均勻量化(函式) VQ.m: 向量量化(函式) L3_2.bmp: 影像檔 lena.mat: Matlab的矩陣變數檔
上傳時間: 2013-12-26
上傳用戶:jiahao131
設有由n個不相同的整數組成的數列,記為: a(1)、a(2)、……、a(n)且a(i)<>a(j) (i<>j) 例如3,18,7,14,10,12,23,41,16,24。 若存在i1<i2<i3< … < ie 且有a(i1)<a(i2)< … <a(ie)則稱為長度為e的不下降序列。如上例中3,18,23,24就是一個長度為4的不下降序列,同時也有3,7,10,12,16,24長度為6的不下降序列。程序要求,當原數列給出之后,求出最長的不下降序列。
上傳時間: 2013-12-14
上傳用戶:tonyshao