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.)

Source: codewars | Difficulty: EASY
Tags: Fundamentals

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