计算不大的组合数
int conb[25][25];//(n<25,m<25)
int C(int n, int m)//C(n,m)
{
int i, j;
for (i = 0; i < n + 1; i++)
{
for (j = 0; j <= i; j++)
{
if (i == j || j == 0)
conb[i][j] = 1;
else
conb[i][j] = conb[i - 1][j] + conb[i - 1][j - 1];
}
}
return conb[n][m];
}
快速幂算法
int fastmi(int a, int b, int c)
{
int ans = 1;
while (b != 0)
{
if (b & 1) ans = (ans*a) % c;
a = (a*a) % c;
b /= 2;
}
return ans;
}
判断素数
bool prim(int x)
{
for (int i = 2; i*i <= x; i++)
if (x%i == 0)
return 0;
return 1;
}