您的位置:首页 > 其它

快速幂,大整数取模

2018-02-06 19:37 218 查看
快速幂不解释,这里的大整数是指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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  快速幂 数论
相关文章推荐