ll power(ll a, ll b, ll p)
{
ll ans = 1 % p, base = a;
while (b)
{
if (b & 1)
{
ans = (ans%p * base%p) % p;
}
base = base* base%p;
b >>= 1;
}
return ans;
}
快速乘模板
简单模板
ll quickMul(ll a, ll b, ll mod)
{
ll res = 0;
while (b)
{
if (b & 1) res = (res + a) % mod;
a = (a + a) % mod;
b >>= 1;
}
return res;
}
高效算法
ll mul(ll a, ll b, ll mod)
{
a %= mod;
b %= mod;
ll res = 0;
while (b)
{
if (b & 1)
{
res += a;
if (res >= mod)
res -= mod;
}
b >>= 1;
a <<= 1;
if (a >= mod) a -= mod;
}
return res;
}
GCD模板
/*
递归的写法
*/
#include<cstdio>
using namespace std;
int gcd(int a,int b)
{
return b>0?gcd(b,a%b):a;
}
int main()
{
int a,b;
while(scanf("%d%d",&a,&b)==2)
{
printf("%d\n",gcd(a,b));
}
return 0;
}