# Task
 The number is considered to be `unlucky` if it does not have digits `4` and `7` and is divisible by `13`. Please count all unlucky numbers not greater than `n`.

# Example

 For `n = 20`, the result should be `2` (numbers `0 and 13`).
 
 For `n = 100`, the result should be `7` (numbers `0, 13, 26, 39, 52, 65, and 91`)
 
# Input/Output


 - `[input]` integer `n`

 `1 ≤ n ≤ 10^8(10^6 in Python)`


 - `[output]` an integer

Source: codewars | Difficulty: EASY
Tags: Ad-hoc

Starter code: def unlucky_number(n):
	

Solutions:
def unlucky_number(n):
	return sum((not ('4' in s or '7' in s) for s in map(str, range(0, n + 1, 13))))


def unlucky_number(n):
	return sum((1 for k in range(0, n + 1, 13) if not set(str(k)) & {'4', '7'}))


def unlucky_number(n):
	return sum((x % 13 == 0 and '4' not in str(x) and ('7' not in str(x)) for x in range(n + 1)))


def unlucky_number(n):
	return len([i for i in range(1, n + 1) if i % 13 == 0 and str(i).count('4') == 0 and (str(i).count('7') == 0)]) + 1


def unlucky_number(n):
	return sum((1 for n in range(0, n + 1, 13) if set(str(n)) & set('47') == set()))


unlucky_number = lambda n: sum((not {'4', '7'} & set(str(x)) for x in range(0, n + 1, 13)))


li = [i for i in range(0, 1000000, 13) if '4' not in str(i) and '7' not in str(i)]
unlucky_number = lambda n: next((len(li[:li.index(i)]) + 1 for i in range(n, -1, -1) if '4' not in str(i) and '7' not in str(i) and (not i % 13)))