N = int(input()) def gcd(a,b): if b==0:return a return gcd(b,a%b) A = [0]+list(map(int,input().split())) B = set() for i in range(1,N+1): a = A[i] for j in range(1,a+1): if j*j>a:break if a%j==0: B.add(j) B.add(a//j) B = sorted(list(B)) D = {i+1:B[i] for i in range(len(B))} E = {v:k for k,v in D.items()} dp = [[0 for _ in range(len(B)+1)] for _ in range(N+1)] for i in range(1,N+1): dp[i][E[A[i]]] = 1 for i in range(1,N): for j in range(1,len(B)+1): ind = E[gcd(D[j],A[i+1])] dp[i+1][ind] += dp[i][j] dp[i+1][j] += dp[i][j] print(dp[N][E[1]])