import java.io.*; public class Main { public static void main(String[] args) throws Exception { StreamTokenizer st = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in))); PrintWriter pw = new PrintWriter(new OutputStreamWriter(System.out)); st.nextToken(); int n= (int) st.nval; st.nextToken(); int k= (int) st.nval; int[] a=new int[n+1]; long[] a2=new long[n+1]; long[] a5=new long[n+1]; for (int i = 1; i < n + 1; i++) { st.nextToken(); a[i]= (int) st.nval; a2[i]=a2[i-1]+cal(a[i],5); a5[i]=a5[i-1]+cal(a[i],2); } long tot2=a2[n],tot5=a5[n]; long res=0L; for(int l=0;l<n;l++){ //删除区间必须得存在 long zuo2 =tot2-k+a2[l]; long zuo5 =tot5-k+a5[l]; int findzuo2=findrm(zuo2,a2); int findzuo5=findrm(zuo5,a5); res+=Math.max(Math.min(findzuo2,findzuo5)-l,0); } System.out.println(res); } private static long cal(int shu, int yinzi) { long cnt=0; while(shu!=0&&shu%yinzi==0){ cnt++; shu/=yinzi; } return cnt; } private static int findrm(long key, long[] arr) { int l=0,r=arr.length-1; while(l<=r){ int mid=l+r>>>1; if(arr[mid]<=key)l=mid+1; else r=mid-1; } return r; } }