关于欧拉函数
歐拉函數(shù),
對(duì)正整數(shù)n,歐拉函數(shù)是少于或等于n的數(shù)中與n互質(zhì)的數(shù)的數(shù)目。
這是我在ACM隊(duì)內(nèi)訓(xùn)練賽的時(shí)候遇到的一個(gè)函數(shù),其實(shí)最初是在離散數(shù)學(xué)課本上了解到了這個(gè)函數(shù),但是當(dāng)時(shí)并沒有留下太深的印象,現(xiàn)在總結(jié)一下。
首先要知道歐拉函數(shù)的公式:euler(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…(1-1/pn)
其中p1,p2,p3是x的所有質(zhì)因子。
1.第一種算法:
直接求法:
暴力遍歷x的所有質(zhì)因子直接求解:
其中while(a%i==0) a/=i;?是在進(jìn)行保證可以整除的是素?cái)?shù)的過程。
另外,for(int i=2;i*i<=a;i++)也利用了素?cái)?shù)篩選法的思想。
2.第二種算法:
篩選法打表求歐拉函數(shù)
打表求值,不斷求得。
2017-06-26 17:43:32 星期一 更新
今天在《算法競(jìng)賽入門(第二版)》(紫書)上看到了一種利用類似與素?cái)?shù)篩選法的方法直接求由1~n的所有歐拉函數(shù)值的辦法。
給出代碼:
利用這個(gè)辦法可以在nloglogn的復(fù)雜度內(nèi)求得由1到n的所有歐拉函數(shù)值。
2017-08-09 ?12:48:12
新增一些歐拉函數(shù)的性質(zhì):
1.如果一個(gè)數(shù)x是素?cái)?shù),則該數(shù)的歐拉函數(shù)值為x-1。
2.若m,n互質(zhì),
3.當(dāng)n為奇數(shù)時(shí),轉(zhuǎn)載于:https://www.cnblogs.com/DLKKILL/p/7245254.html
總結(jié)
- 上一篇: BZOJ 2244: [SDOI2011
- 下一篇: Nodejs--url模块