n = gets.to_i
aa = []
memo = Array.new(41) {Array.new(21) {Array.new(10, 0)}}

n.times do
    a = gets.to_r
    s = a.denominator
    r = a.numerator

    x = (s & -s).bit_length - 1
    y = 0
    (y += 1; s /= 5) while s % 5 == 0
    z = [x, y].max

    if x > y
        y = x - y
        x = 0
    elsif x == y
        x = y = 0
    else
        x = y - x
        y = 0
    end

    x += (r & -r).bit_length - 1
    (y += 1; r /= 5) while r % 5 == 0
    
    memo[x][y][z] += 1
    aa << [x,y,z]
end

10.times do |k|
    40.times do |i|
        i = 39 - i
        20.times do |j|
            j = 19 - j
            memo[i][j][k] += memo[i+1][j][k] + memo[i][j+1][k] - memo[i+1][j+1][k]
        end
    end
end

ans = 0
aa.each do |x,y,z|
    10.times do |k|
        i = [k + z - x, 0].max
        j = [k + z - y, 0].max
        ans += memo[i][j][k]
    end
end

p (ans - memo[0][0][0]) / 2