ACM取余公式
嘤嘤怪给的
quickmod
#include <iostream>
#include<bits/stdc++.h>
using namespace std;
#define maxn 10000
int quickmod(int a,int b,int c)
{
int ret=1;
while(b){
if(b&1)
{
ret=ret*a%c;
}
a=a*a%c;
b/=2;
}
return ret;
}
int main(int argc, char *argv[]) {
int a,b,c;
cin>>a>>b>>c;
cout<<quickmod(a,b,c);
return 0;
}
///3 3 2
///1
gcd+lcm+qmod+检验
typedef long long ll;
ll mod;
ll qpow(ll a, ll n)//计算a^n % mod
{
ll re = 1;
while(n)
{
if(n & 1)//判断n的最后一位是否为1,如果是1那就之乘一次,并把之前的搞进来(最后一次一定是1)
re = (re * a) % mod;
n >>= 1;//舍去n的最后一位
a = (a * a) % mod;//将a平方
}
return re % mod;
}
#include <iostream>
#include<bits/stdc++.h>
using namespace std;
#define maxn 10000
int gcd(int m, int n)
{
int r=m%n;
while(r!=0)
{
m=n;
n=r;
r=m%n;
}
return n;
}
int lcm(int a,int b){
return a*b/gcd(a,b);///2021.4.17这里是除!!
}
int qmode(int a,int b,int c)
{
int res=1;
while(b!=0)
{
if(b&1)
{
res=res*a%c;
}
a=a*a%c;
b/=2;
}
return res;
}
int cifang(int m,int p)
{
int res=1;
for(int i=0;i<p;i++)
{
res*=m;
}
return res;
}
int main(int argc, char *argv[]) {
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
// int a,b,c;
// cin>>a>>b;
// cout<<gcd(a,b);
// cout<<" "<<lcm(a,b);
int n;
cin>>n;
for(int i=1;i<n;i++)
{
for(int j=1;j<i;j++)
{
for(int m=1;m<j;m++)
{
int qm=qmode(i,j,m);
int mo=cifang(i,j)%m;
if(i==j&&j==m)
{
cout<<1;
}
if(qm!=mo)
{
if(qm<0||mo<0)
{
cout<<"don't care it";cout<<"qM:"<<qm<<"mo:"<<mo<<"wrong"<<"i"<<i<<"j"<<j<<"m"<<m;
}else{
cout<<endl;
cout<<"qM:"<<qm<<"mo:"<<mo<<"wrong"<<"i"<<i<<"j"<<j<<"m"<<m<<endl;
}
}
}
}
}
return 0;
}