package main
import (
"bufio"
"os"
)
func main() {
in := bufio.NewReader(os.Stdin)
out := bufio.NewWriter(os.Stdout)
defer out.Flush()
n := readInt(in)
M := int64(3000000)
c := make([]int64, M+5)
for i := int64(0); i < n; i++ {
v := readInt(in)
if v <= M {
c[v]++
}
}
S := make([]int64, M+5)
for x := int64(1); x <= M; x++ {
if c[x] == 0 {
continue
}
for y := int64(1); y <= M/x; y++ {
if x == y {
S[x*y] += c[x] * (c[x] - 1)
} else {
S[x*y] += c[x] * c[y]
}
}
}
P := make([]int64, M+5)
for i := int64(1); i <= M; i++ {
P[i] = P[i-1] + S[i]
}
m := readInt(in)
total := n * (n - 1)
for i := int64(0); i < m; i++ {
p := readInt(in)
ans := total
if p-1 <= M {
ans -= P[p-1]
} else {
ans -= P[M]
}
writeInt(out, ans)
}
}
func readInt(in *bufio.Reader) int64 {
var res int64
var sign int64 = 1
b, err := in.ReadByte()
for err == nil && (b < '0' || b > '9') && b != '-' {
b, err = in.ReadByte()
}
if err != nil {
return 0
}
if b == '-' {
sign = -1
b, err = in.ReadByte()
}
for err == nil && b >= '0' && b <= '9' {
res = res*10 + int64(b-'0')
b, err = in.ReadByte()
}
return res * sign
}
func writeInt(out *bufio.Writer, n int64) {
if n == 0 {
out.WriteByte('0')
out.WriteByte('\n')
return
}
if n < 0 {
out.WriteByte('-')
n = -n
}
var buf [20]byte
i := 19
for n > 0 {
buf[i] = byte(n%10 + '0')
n /= 10
i--
}
out.Write(buf[i+1:])
out.WriteByte('\n')
}