//n中质因子p的个数
int cal(int n, int p){
int ans=0;
while(n){
ans+=n/p;
n/=p;
}
return ans;
}
//组合数(递归)
long long res[100][100] = {0};
long long c(long long n, long long m){
if(m==0||m==n) return 1;
if(res[n][m]!=0) return res[n][m];
return res[n][m] = c(n-1,m)+c(n-1,m-1);
}
//组合数(定义式)
long long c(long long n,long long m){
long long ans = 1;
for(long long i=1;i<=m;i++){
ans = ans*(n-m+i)/i;
}
return ans;
}
//组合数(递归)
long long res[100][100] = {0};
long long c(long long n, long long m,int p){
if(m==0||m==n) return 1;
if(res[n][m]!=0) return res[n][m];
return (res[n][m] = c(n-1,m)+c(n-1,m-1))%p;
}