# Task
Find the integer from `a` to `b` (included) with the greatest number of divisors. For example:
```
divNum(15, 30)   ==> 24
divNum(1, 2)     ==> 2
divNum(0, 0)     ==> 0
divNum(52, 156)  ==> 120
```
If there are several numbers that have the same (maximum) number of divisors, the smallest among them should be returned. Return the string `"Error"` if `a > b`.
def div_num(a, b):
    return 'Error' if a > b else sorted([i for i in range(a, b + 1)], key=lambda k:(-divisors(k), k))[0]
    
def divisors(n):    
    d = {i for i in range(1, int(n**0.5 +.99)) if n % i == 0}    
    return len(d | {n // i for i in d})
def div_num(a, b):
    return 'Error' if a > b else sorted([i for i in range(a, b + 1)], key=lambda k:(-divisors(k), k))[0]
    
def divisors(n):    
    d = {i for i in range(1, int(n**0.5 +.99)) if n % i == 0}    
    return len(d | {n // i for i in d})