Question: You are given three parameters: start(int), end(int) and list(of int);

Make a function that returns the amount of times all the numbers between **start** and **end** are multiples of the elements in the **list**.
example:

```
start = 15; end = 18; list = [2, 4, 3];
15 => 1 (is multiple of 3)
16 => 2 (is multiple of 2 and 4)
17 => 0
18 => 2 (is multiple of 2 and 3)
result = 5

```

The function should accept two positive integer numbers and an array of integers as parameters, returning the total integer number. Assume that start is less <= end.

examples: 

```
Multiple(1, 10, [1, 2]); => 15
Multiple(1, 800, [7, 8]); => 214
Multiple(301, 5000,[13, 5]); => 1301

```

The shortest solution is the victor!!! May he odds be ever in your favor...

Answer: 
[Haskell](https://www.haskell.org/), 33 bytes
=============================================

```hs
(a#b)x=sum[1|0<-mod<$>[a..b]<*>x]

```

[Try it online!](https://tio.run/##y0gszk7Nyfn/XyNROUmzwra4NDfasMbARjc3P8VGxS46UU8vKdZGy64i9n9uYmaegq1CQVFmXomCioKGoamyoYVmtJGOiY5x7H8A "Haskell – Try It Online")

Explanation:

```hs
(a#b)x                            --take two values a and b and the list x
                      [a..b]      --generate the range a, a+1, ... , b
                mod<$>[a..b]      --partially apply "mod" to each entry of the list
                mod<$>[a..b]<*>x  --apply the partially applied functions to all values of the list x
          [1|0<-mod<$>[a..b]<*>x] --generate a new list with a one for every zero in the previously computed list
(a#b)x=sum[1|0<-mod<$>[a..b]<*>x] --sum it all up

```
[Icon](https://github.com/gtownsend/icon), 59 bytes
===================================================

```
procedure f(a,b,l)
n:=0
(a to b)%!l<1&n+:=1&\z
return n
end

```

[Try it online!](https://tio.run/##Zc5BCsMgEIXhvaewiwals3BipRKak6RdmMSAkIxFDIVePo27kr7tx4M/DJG27ZXi4Mc1eT4JBz3MklHTKiYcz5H38nya71jRpWmxenxY8nlNxIl5Gn@@iwskJOP73ilkLyaBBtBCV8MV9FMeDFBBh1D/g1W73MAeRSsEowqiBm4Kl4Qv "Icon – Try It Online")