日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

欧拉函数(Euler_Function)

發布時間:2024/10/5 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 欧拉函数(Euler_Function) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、基本概述

在數論,對正整數n,歐拉函數varphi(n)是少于或等于n的數中與n互質的數的數目。此函數以其首名研究者歐拉命名,它又稱為Euler's totient function、φ函數、歐拉商數等。

二、計算公式

三、基本性質

歐拉函數用希臘字母φ表示,φ(N)表示N的歐拉函數.

對φ(N)的值,我們可以通俗地理解為小于N且與N互質的數的個數(包含1).

歐拉函數的一些性質:

1.對于素數p,?φ(p)=p-1,對于對兩個素數p,q?φ(pq)=pq-1

歐拉函數是積性函數,但不是完全積性函數.

證明:

函數的積性即:若m,n互質,則φ(mn)=φ(m)φ(n).由“m,n互質”可知m,n無公因數,所以φ(m)φ(n)=m(1-1/p1)(1-1/p2)(1-1/p3)…(1-1/pn)·n(1-1/p1')(1-1/p2')(1-1/p3')…(1-1/pn'),其中p1,p2,p3...pn為m的質因數,p1',p2',p3'...pn'為n的質因數,而m,n無公因數,所以p1,p2,p3...pn,p1',p2',p3'...pn'互不相同,所以p1,p2,p3...pn,p1',p2',p3'...pn'均為mn的質因數且為mn質因數的全集,所以φ(mn)=mn(1-1/p1)(1-1/p2)(1-1/p3)…(1-1/pn)(1-1/p1')(1-1/p2')(1-1/p3')…(1-1/pn'),所以φ(mn)=φ(m)φ(n).

即φ(mn)=φ(n)*φ(m)只在(n,m)=1時成立.

2.對于一個正整數N的素數冪分解N=P1^q1*P2^q2*...*Pn^qn.

???φ(N)=N*(1-1/P1)*(1-1/P2)*...*(1-1/Pn).

3.除了N=2,φ(N)都是偶數.

4.設N為正整數,∑φ(d)=N (d|N).

四、求歐拉函數

1、埃拉托斯特尼篩求歐拉函數

觀察歐拉函數的公式,?。我們用phi[x]表示φ(x)。可以一開始把phi[x]賦值為x,然后每次找到它的質因數就(先除再乘,避免溢出)。當然,若只要求一個數的歐拉函數,可以從1到sqrt(n)掃一遍,若gcd(i,n)=1就更新phi[n] phi[n]phi[n]。復雜度為O(logn)(代碼就不給了)。那要求1~n所有數的歐拉函數呢?可以用埃拉托斯特尼篩的思想,每次找到一個質數,就把它的倍數更新掉。這個復雜度雖然不是O(n),但還是挺快的(據說是O(n*ln ln n),關于證明,可以點這里,雖然我看不懂)。
代碼如下:

void euler(int n) {for (int i=1;i<=n;i++) phi[i]=i;for (int i=2;i<=n;i++){if (phi[i]==i)//這代表i是質數{for (int j=i;j<=n;j+=i){phi[j]=phi[j]/i*(i-1);//把i的倍數更新掉}}} }

?

2、歐拉篩求歐拉函數

前提是要懂歐拉篩。每個數被最小的因子篩掉的同時,再進行判斷。i表示當前做到的這個數,prime[j]表示當前做到的質數,那要被篩掉的合數就是i*prime[j]。若prime[j]在這個合數里只出現一次(i%prime[j]!=0),也就是i和prime[j]互質時,則根據歐拉函數的積性函數的性質,phi[i * prime[j]]=phi[i] * phi[prime[j]]。若prime[j]在這個合數里出現了不止一次(i%prime[j]=0),也就是這個合數的所有質因子都在i里出現過,那么根據公式,復雜度為O(n)。

還是看代碼吧:

void euler(int n) {phi[1]=1;//1要特判?for (int i=2;i<=n;i++){if (flag[i]==0)//這代表i是質數?{prime[++num]=i;phi[i]=i-1;}for (int j=1;j<=num&&prime[j]*i<=n;j++)//經典的歐拉篩寫法?{flag[i*prime[j]]=1;//先把這個合數標記掉?if (i%prime[j]==0){phi[i*prime[j]]=phi[i]*prime[j];//若prime[j]是i的質因子,則根據計算公式,i已經包括i*prime[j]的所有質因子?break;//經典歐拉篩的核心語句,這樣能保證每個數只會被自己最小的因子篩掉一次?}else phi[i*prime[j]]=phi[i]*phi[prime[j]];//利用了歐拉函數是個積性函數的性質?}} }

五、例題

http://acm.hdu.edu.cn/showproblem.php?pid=2588

http://poj.org/problem?id=2480

http://acm.hdu.edu.cn/showproblem.php?pid=3501

https://www.luogu.org/problemnew/show/P2158?

總結

以上是生活随笔為你收集整理的欧拉函数(Euler_Function)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久久久久久亚洲 | a免费毛片 | 91精品久久久久久久久久入口 | 国产又粗又猛又爽又黄 | 99精品久久久久久 | 我把护士日出水了视频90分钟 | 亚洲少妇自拍 | 国产精品久久无码一三区 | 国产污视频在线看 | 国产乱码精品 | 毛片网站网址 | 色女孩综合 | 亚洲一区视频在线 | 亚洲精品国产精品乱码视色 | 国产中文一区二区三区 | 婷婷伊人综合中文字幕 | 香蕉久久夜色精品升级完成 | 老司机午夜精品视频 | 午夜神马福利 | 欧美日韩亚洲天堂 | 亚洲在线不卡 | 欧美成人第一页 | 亚洲色欧美 | av猫咪 | 超碰伊人网 | 久久午夜一区 | 国产视频精品自拍 | 在线观看69| 日韩免费视频一区二区视频在线观看 | 日本中文字幕不卡 | 午夜免费激情视频 | 在线看片网站 | 免费的黄色的视频 | 一级做a爱片久久毛片 | 99热这里只有精品99 | 视频区图片区小说区 | 亚洲日本成人 | 亚洲一二三区在线观看 | 日韩图片区 | 国产亚洲精品av | 一级片在线视频 | 久久久久亚洲av无码网站 | 免费看欧美一级特黄a大片 国产免费的av | 特黄级 | 久久精品国产亚洲a | 亚洲大胆人体 | 天天看片天天干 | 日本a级片免费 | 中文字幕乱码在线 | 手机在线视频一区 | 亚洲一区二区观看 | 午夜黄色小视频 | 午夜影剧院 | 精品亚洲一区二区三区四区五区 | 日韩第一页 | 鲁鲁狠狠狠7777一区二区 | 美女日批在线观看 | 高清一区在线观看 | 欧美日韩在线看 | 日本黄色xxxx | 国产无遮挡呻吟娇喘视频 | 护士人妻hd中文字幕 | 精品丰满人妻无套内射 | 东方影库av | 狠狠干男人的天堂 | 啪啪亚洲| 国内视频一区二区三区 | 国产精品传媒在线观看 | 爱操av| caobi视频| 黄色免费网站观看 | 一区视频在线播放 | 欧美激情专区 | 91网址入口 | 日韩欧美天堂 | 美女xx00| 免费成人av网址 | 亚洲性xx | 97久久国产 | 国产a不卡 | 天堂av电影在线观看 | 荡女精品导航 | 九九视频在线观看 | 女人和拘做爰正片视频 | 成人h动漫精品一区二区器材 | 国产免费看黄 | 亚洲最大的成人网站 | 国产伦精品一区二区三区四区 | 亚洲清纯国产 | 亚洲成年人 | 美女被草出白浆 | 三级特黄视频 | 国产一级特黄a高潮片 | 精品国产中文字幕 | 少妇一级淫片免费 | 国产精品成人免费精品自在线观看 | 又污又黄的网站 | 日韩不卡av | 国产精品资源 |