组合数计算(优化)
long long C(int n,int m)
{
if(m<n-m) m = n-m;
long long ans = 1;
for(int i=m+1;i<=n;i++) ans*=i;
for(int i=1;i<=n-m;i++) ans/=i;
return ans;
}
素数判断(优化)
int is_prime(int x)
{
if(x<=1) return false;
int m = floor(sqrt(x)+0.5);
for(int i=2;i<=m;i++)
if(n%i==0) return false;
return true;
}