#include<bits/stdc++.h>
#define ll long long
#define maxn 1000005
#define inf 1e18
#define mod 998244353
using namespace std;
ll n,w,p[maxn],sum[50000][2000],z[maxn],k,x,ans=1,num,wz;
bool bj[maxn];
int main()
{
scanf("%lld%lld",&n,&w);bj[1]=true;
for(int i=2;i<=1e4;i++)
{
if(!bj[i])
{
z[++k]=i;
for(int j=i+i;j<=1e4;j+=i)
{
bj[j]=true;
}
}
}
for(int i=1;i<=n;i++)
{
cin>>p[i];x=p[i];
for(int j=1;z[j]<=x;j++)
{
while(x%z[j]==0)
{
sum[i][j]++;
x/=z[j];
}
}
}
for(int i=1;i<=k;i++)
{
while(w%z[i]==0)
{
num=inf;
for(int j=1;j<=n;j++)
{
if(sum[j][i]<num)
{
num=sum[j][i];
wz=j;
}
}
sum[wz][i]++;
w/=z[i];
}
if(w==1)break;
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=k;j++)ans=(ans*(sum[i][j]+1))%mod;
}
cout<<ans;
return 0;
}