費馬定理&歐拉定理
阿新 • • 發佈:2018-07-06
。。 因數 證明 其中 return 一個 ios 質數 並且
費馬定理:
ap≡a(mod p)
其中p為質數,且a不是p的倍數
證明:
。。。。。
歐拉定理:
aφ(p)≡1(mod p)
φ(x)(歐拉函數)為小於等於x且與x互質的數的個數
φ(x)=∏(pi-1)*piki-1 其中pi表示 x的質因數,ki表示這種質因數的個數
特別的對於質數 φ(x)=x-1。
歐拉函數的代碼實現:
1 #include<cstdio> 2 #include<Iostream> 3 using namespace std; 4int ol(int x) 5 { 6 int ans=1; 7 for(int i=2;i*i<=x;++i) 8 { 9 if(x%i==0) 10 { 11 x/=i; 12 ans*=i-1; 13 } 14 while(x%i==0) 15 { 16 x/=i; 17 ans*=i; 18 } 19 }20 if(x>1) ans*=x-1; 21 return ans; 22 } 23 int main() 24 { 25 int a; 26 scanf("%d",&a); 27 printf("%d",ol(a)); 28 return 0; 29 }
最後函數裏那個如果x>1,ans*=x-1一開始讓我很懵,後來一想,如果這個數將所有的質因數除過一遍之後,剩下的數如果不是1,那麽剩下的肯定只有一個並且是個質數(證明很顯然)
費馬定理&歐拉定理