from sys import exit from math import gcd from collections import defaultdict mod=10**9+7 n,k=map(int,input().split()) if k==1: print(pow(2,n,mod)-1) exit() A=list(map(lambda x:gcd(int(x),k),input().split())) B=[] cnt=0 for x in A: if x==1: cnt+=1 else: B.append(x) m=len(B) dp=defaultdict(int) dp[1]=1 for i in range(m): for j in dp: bi=B[i-1] g=gcd(j*bi,k) dp[g]+=dp[j] dp[g]%=mod ans=dp[k]*pow(2,cnt,mod)%mod print(ans)