Complete the function that takes 3 numbers `x, y and k` (where `x ≤ y`), and returns the number of integers within the range `[x..y]` (both ends included) that are divisible by `k`.

More scientifically:  `{ i : x ≤ i ≤ y, i mod k = 0 }`


## Example

Given ```x = 6, y = 11, k = 2``` the function should return `3`, because there are three numbers divisible by `2` between `6` and `11`: `6, 8, 10`

- **Note**: The test cases are very large. You will need a O(log n) solution or better to pass. (A constant time solution is possible.)

Difficulty: introductory

Starter code:

def divisible_count(x,y,k):
	

Solutions:
def divisible_count(x,y,k):
    return y//k - (x-1)//k

def divisible_count(x,y,k):
    upper = y//k
    lower = (x-1)//k
    return upper - lower

divisible_count=lambda x,y,k:y//k-~-x//k

def divisible_count(x,y,k):
    ans = 0
    
    while True:
        if x % k == 0:
            break
        else:
            x += 1
    
    while True:
        if y % k == 0:
            break
        else:
            y -= 1
    
    ans = ((y-x) // k) + 1
         
    return ans

def divisible_count(x,y,k):
    mod = x % k
    if mod != 0:
        x += (k - mod)
    y -= y % k
    if x > y:
        return 0
    return (y - x) // k + 1

from fractions import Fraction

def divisible_count(x,y,k):
    x += k - (x % k or k)
    return int(Fraction(y - x + k, k))

def divisible_count(x,y,k):
    d = x % k;
    if x >= 0:
        return (d == 0) + (y - x + d) // k

def divisible_count(x,y,k):
    return (y//k) - (x//k) + bool(x % k == 0)

def divisible_count(x,y,k):
    result = 0
    for i in range(x, y+1):
        if i%k == 0:
            result += 1
            break
    result += (y-i)//k
    return result