求n的p次方(模版)
int pow(int n, int m)
{
int sum=1;
while (m)
{
if (m&1) sum=sum*n%10003;
m>>=1;
n=n*n%10003;
}
return sum;
}
求一个n位数N(n很大)对M求余
int Mod(char* bigint,int M)//bigint指把大数存成的一个字符串,对M求余
{
int s=bigint[0]-'0';
for(unsigned i=1;bigint[i];i++)
s=(s*10+bigint[i]-'0')%M;
return s;
}
欧拉函数模板(求不超过n且与n互素的正整数的个数)
long long phi(long long n)
{
long long rea = n;
for (int i=2; i*i<=n; i++)
{
if (n%i==0)
{
rea-=rea/i;
do
n/=i;
while (n%i==0);
}
}
if (n>1)
rea-=rea/n;
return rea;
}