from typing import List from typing import Generator def _multiples(nums: List[int], above: int, below: int) -> List[int]: return [num for num in range(above, below) if any(num % n == 0 for n in nums)] def _multiples_gen(nums: List[int], above: int, below: int) -> Generator[int]: for i in range(above, below): if any(i % n == 0 for n in nums): yield i def multiples(nums: List[int], below: int) -> List[int]: return _multiples(nums, 0, below) print(sum(multiples([3, 5], 1000))) print(sum(_multiples_gen([3, 5], 0, 1000))) print(sum(_multiples([3, 5], 0, 1000)))