zoukankan      html  css  js  c++  java
  • 欧拉函数&&快速乘方

     1 //phi(a)=a*(a1-1)*(a2-1)*(a3-1)*...*(an-1)/(a1*a2*a3*...*an);
     2 #include<iostream>
     3 #include<cstdlib>
     4 #include<cstring>
     5 #include<cmath>
     6 using namespace std;
     7 typedef __int64 LL;
     8 LL phi(LL a){//phi
     9     LL temp=a;
    10     for(LL i=2;i*i<=a;i++)
    11         if(a%i==0){
    12             while(a%i==0)  a/=i;
    13             temp=temp/i*(i-1);
    14         //    cout<<"a="<<a<<" i="<<i<<endl;
    15         }
    16         //cout<<"a="<<a<<endl;
    17         if(a!=1)  temp=temp/a*(a-1);
    18     return temp;
    19 }
    20 int main(){
    21     LL a;
    22     while(cin>>a)
    23     cout<<"phi(a)="<<phi(a)<<endl;
    24     return 0;
    25 }
    快速乘方 求a的k次方mod b
     1 #include<iostream>
     2 #include<cstdlib>
     3 #include<cstring>
     4 using namespace std;
     5 typedef __int64 LL;
     6 LL modd(LL a,LL k,LL b){
     7     int temp,ans;
     8     ans=1;
     9     temp=a;
    10     while(k!=0){
    11         if(k%2)   ans=ans*temp%b;
    12         temp=temp*temp%b;
    13         k/=2;
    14     }
    15     return ans;
    16 }
    17 int main(){
    18     LL a,b,k;
    19     while(cin>>a>>b>>k)
    20       cout<<modd(a,k,b)<<endl;
    21     return 0;
    22 }
  • 相关阅读:
    053587
    053586
    053585
    053584
    053583
    053582
    053581
    053580
    053579
    053578
  • 原文地址:https://www.cnblogs.com/acplayfacm/p/3864654.html
Copyright © 2011-2022 走看看