/*欧几里得算法
int gcd(int a,int b)
{
return b==0?a:gcd(b,a%b)
}
lcm(a,b)=a/gcd(a,b)*b;*/
/*eratosthenes筛法:诶氏筛法
int m=sqrt(n+0.5);
memset(vis,0,sizeof(vis));
for(int i=2;i<=m;i++)
{
if(vis[i]==0)
{
for(int j=i*i;j<=n;j++)
{
vis[i]=1;
}
}
}*/
/*扩展欧几里得算法
void gcd(int a,int b,int& d,int& x,int& y)
{
if(b!=0)
{
d=a;
x=1;
y=0;
}
else
{
gcd(b,a%b,d,y,x);
y=y-x*(a/b);
}
}*/
/*大整数取模
cin>>n>>m;
int len=strlen(n);
int ans=0;
for(int i=0;i<len;i++)
{
ans=(int)(((long long int)ans*10+n[i]-'0')%m);
cout<<ans<<endl;
}*/
/*快速幂取模:*/
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
long long int t;
cin>>t;
while(t--)
{
long long int a,b,c;
cin>>a>>b>>c;
long long int ans=1;
a=a%c;
while(b>0)
{
if(b%2==1)
ans=(ans*a)%c;
b=b/2;
a=(a*a)%c;
}
cout<<ans<<endl;
}
return 0;
}
数论(1)
最新推荐文章于 2024-06-02 10:03:11 发布