N,K = map(int,input().split()) A = [0]+list(map(int,input().split())) MOD = 10**9+7 def gcd(a,b): if b==0:return a return gcd(b,a%b) B = set() for i in range(1,K+1): if i*i>K:break if K%i==0: B.add(i) B.add(K//i) B = sorted(list(B)) M = len(B) B = [0]+B C = {B[j]:j for j in range(1,M+1)} dp = [[0 for _ in range(M+1)] for _ in range(N+1)] for j in range(1,M+1): if A[1]%B[j]==0: dp[1][j] = 1 for i in range(2,N+1): for j in range(1,M+1): d = gcd(B[j],A[i]) dp[i][j] = (dp[i-1][j]+dp[i-1][C[B[j]//d]])%MOD if d==B[j]: dp[i][j] = (dp[i][j]+1)%MOD print(dp[N][M])