快速幂不解释,这里的大整数是指long long无法存储的整数(好像有一点鸡肋)
传送门:
gcd和lcm:点击这里
上代码:
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
char n[10000000];
int qmod(int a,int b,int c)
{
if(b==0) return 1;
int x=qmod(a,b/2,c);
long long ans=(long long)x*x%c;
if(b%2==1) ans=ans*a%c;
return (int)ans;
}
int biginter_mod(char n[],int m)
{
int ans=0;int len=strlen(n);
for(int i=0;i<len;++i)
ans=(10*ans+n[i]-'0')%m;
return ans;
}
int main()
{
int k;cin>>k;int x,y,z;
if(k==1) {
cin>>x>>y>>z;
cout<<qmod(x,y,z);
}
else
{
scanf("%s%d",n,&x);
cout<<biginter_mod(n,x);
}
}
END