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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

poj1284:欧拉函数+原根

發(fā)布時(shí)間:2023/12/20 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 poj1284:欧拉函数+原根 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
何為原根?
由費(fèi)馬小定理可知 如果a于p互質(zhì) 則有a^(p-1)≡1(mod p)
對(duì)于任意的a是不是一定要到p-1次冪才會(huì)出現(xiàn)上述情況呢?
顯然不是,當(dāng)?shù)谝淮纬霈F(xiàn)a^k≡1(mod p)時(shí), 記為ep(a)=k 當(dāng)k=(p-1)時(shí),稱a是p的原根
每個(gè)素?cái)?shù)恰好有f(p-1)個(gè)原根(f(x)為歐拉函數(shù))
?
定理:對(duì)于奇素?cái)?shù)m,?原根個(gè)數(shù)為phi(phi(m)),?由于phi(m)=m-1,?所以為phi(m-1)。
某大牛的證明:

{xi%p | 1 <= i <= p - 1} = {1,2,...,p-1} 等價(jià)于?{xi%(p-1) | 1 <= i <= p - 1} = {0,1,2,...,p-2},即為(p-1)的完全剩余系

若x,x2...x(p-1)是(p-1)的完全剩余系,

根據(jù)定理,可以推出若gcd(x, p-1) = 1時(shí),?(1,x,...,x(p-2))也是(p-1)的完全剩余系

因?yàn)槿魓i?!= xj?(mod p-1),那么x*xi?!= x*xj?(mod p-1),與條件m矛盾,所以 xi?= xj?(mod p-1),

由此可以確定答案為EulerPhi(p-1)

代碼

#include<stdio.h> #define maxn 66666 int euler[maxn+1]; int phi(int n) {int res=n;for(int i=2;i*i<=n;i++){if(n%i==0){res=res-res/i;while(n%i==0)n/=i;}}if(n>1)res=res-res/n;return res; } //篩法范圍打表 nlogn void phi() {for(int i=1;i<=maxn;i++)euler[i]=i;for(int i=2;i<=maxn;i+=2)euler[i]/=2;for(int i=3;i<=maxn;i++){if(euler[i]==i) //未被篩到。是素?cái)?shù),則用此素?cái)?shù)來篩 {for(int j=i;j<=maxn;j+=i){euler[j]=euler[j]/i*(i-1);}}}return ; } int main() {int n;phi();while(scanf("%d",&n)!=EOF){printf("%d\n",euler[n-1]);} }

?

轉(zhuǎn)載于:https://www.cnblogs.com/oneshot/p/3979863.html

總結(jié)

以上是生活随笔為你收集整理的poj1284:欧拉函数+原根的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。