#include
#define inf 3000005
using namespace std;
int f[inf];
void Findp(int m,vector& prime)//唯一分解
{
int k=int(sqrt(m)+0.5);
for(int i=2;i<=k;i++)
{
if(m%i==0)
{
prime.push_back(i);
while(m%i==0) m/=i;
}
}
if(m>1) prime.push_back(m);
}
int main()
{
int n,m;
while(cin>>n>>m)
{
memset(f,0,sizeof(f));
vector prime;
Findp(m,prime);//对m的所有因数进行预处理,并存在vector中,这样子之后就只需要计算指数就可以判断了,
n--;//前移一位
for(int i=0;i ans;
for(int i=1;i
组合数杨辉三角(Irrelevant Elements uva1635)