AtCoder Beginner Contest 106 - 105

The number 105 is quite special - it is odd but still it has eight divisors.
Now, your task is this: how many odd numbers with exactly eight positive divisors are there between 1 and N (inclusive)?

-----Constraints-----
 - N is an integer between 1 and 200 (inclusive).

-----Input-----
Input is given from Standard Input in the following format:
N

-----Output-----
Print the count.

-----Sample Input-----
105

-----Sample Output-----
1

Among the numbers between 1 and 105, the only number that is odd and has exactly eight divisors is 105.

Source: atcoder | Difficulty: EASY


Solutions:
N = int(input())
L = [105, 135, 165, 189, 195]
ans = 0
for k in range(5):
	if L[k] <= N:
		ans += 1
print(ans)


import sys

def div(n):
	count = 0
	for i in range(1, n + 1):
		count += 1 if n % i == 0 else 0
	return count
ans = 0
for i in range(1, int(input()) + 1):
	ans += 1 if i % 2 == 1 and div(i) == 8 else 0
print(ans)


N = int(input())
ans = 0
for i in range(1, N + 1):
	if i % 2 == 1:
		num = 0
		for i2 in range(1, i + 1):
			if i % i2 == 0:
				num += 1
		if num == 8:
			ans += 1
print(ans)


def factorization(n):
	arr = []
	temp = n
	for i in range(2, int(-(-n ** 0.5 // 1)) + 1):
		if temp % i == 0:
			cnt = 0
			while temp % i == 0:
				cnt += 1
				temp //= i
			arr.append([i, cnt])
	if temp != 1:
		arr.append([temp, 1])
	if arr == []:
		arr.append([n, 1])
	return arr
factorization(25)
N = int(input())
N_list = [i for i in range(1, N + 1) if i % 2 == 1]
count = 0
for n in N_list:
	factor_list = factorization(n)
	num_divisor = 1
	for factor in factor_list:
		num_divisor *= factor[1] + 1
	if num_divisor == 8:
		count += 1
print(count)


x = 0
for i in range(1, int(input()) + 1):
	if i == 105 or i == 135 or i == 165 or (i == 189) or (i == 195):
		x += 1
print(x)


d = [105, 3 * 5 * 9, 3 * 5 * 11, 3 * 5 * 5 * 5, 27 * 7, 15 * 13]
n = int(input())
ans = 0
for i in range(len(d)):
	if d[i] <= n:
		ans += 1
print(ans)


N = int(input())
S = [3 * 5 * 7, 3 * 5 * 11, 3 * 5 * 13, 3 ** 3 * 5, 3 ** 3 * 7]
ans = 0
for s in S:
	if s <= N:
		ans += 1
print(ans)


n = int(input())
print(sum((i <= n for i in [105, 135, 165, 189, 195])))


N = int(input())
[3, 5, 7, 11, 13]
A = [105, 135, 165, 189, 195]
ans = 0
for i in A:
	if i <= N:
		ans += 1
print(ans)


def I():
	return int(input())
N = I()
ans = 0
if N >= 105:
	for i in range(105, N + 1, 2):
		count_yakusuu = 0
		for j in range(1, int(i ** 0.5) + 1):
			if i % j == 0:
				count_yakusuu += 2
		if count_yakusuu == 8:
			ans += 1
print(ans)


n = int(input())
ans = 0
for i in range(1, n + 1):
	x = 0
	if i % 2 == 1:
		for j in range(1, i + 1):
			if i % j == 0:
				x += 1
	if x == 8:
		ans += 1
print(ans)


def divisor(n):
	i = 1
	table = []
	while i * i <= n:
		if n % i == 0:
			table.append(i)
			table.append(n // i)
		i += 1
	table = list(set(table))
	return table
num = []
n = int(input())
for i in range(1, n + 1):
	if i % 2 != 0:
		if len(divisor(i)) == 8:
			num.append(i)
print(len(num))


N = int(input())
ans = 0
for i in range(1, N + 1, 2):
	ans += len([j for j in range(1, i + 1) if i % j == 0]) == 8
print(ans)


import bisect
print(bisect.bisect_right([105, 135, 165, 189, 195], int(input())))


a = int(input())
ans = [105, 135, 165, 189, 195]
c = 0
for i in range(len(ans)):
	if ans[i] <= a:
		c += 1
print(c)


n = int(input())
print(max(n - 75, 0) // 30 + int(n > 188))


N = int(input())
ans = 0
for i in range(1, N + 1):
	cnt = 0
	if i % 2 != 0:
		for h in range(1, i + 1):
			if i % h == 0:
				cnt += 1
	if cnt == 8:
		ans += 1
print(ans)


n = int(input())
list = []
for m in range(1, n + 1)[::2]:
	list.append(len([i for i in range(1, m + 1)[::2] if m % i == 0]))
print(list.count(8))


n = int(input())
if 195 <= n:
	print(5)
elif 189 <= n:
	print(4)
elif 165 <= n:
	print(3)
elif 135 <= n:
	print(2)
elif 105 <= n:
	print(1)
else:
	print(0)


l = [105, 135, 165, 189, 195]
n = int(input())
cnt = 0
for i in l:
	if i <= n:
		cnt += 1
print(cnt)


n = int(input())
x = 0
for i in range(1, n + 1, 2):
	c = 0
	for j in range(1, n // 2 + 1):
		if i % j == 0:
			c += 1
	if c == 7:
		x += 1
print(x)


(a, c) = (int(input()), 0)
for b in [105, 135, 165, 189, 195]:
	if a >= b:
		c += 1
print(c)


N = int(input())
xList = [105, 135, 165, 189, 195]
answer = 0
for i in xList:
	if i <= N:
		answer += 1
print(answer)


n = int(input())
c = 0
for x in range(1, n + 1, 2):
	if sum((1 for y in range(1, x // 2) if x % y == 0)) == 7:
		c += 1
print(c)


n = int(input())
a = 0
for i in range(1, n + 1, 2):
	b = 0
	for j in range(1, i + 1):
		if i % j == 0:
			b += 1
	if b == 8:
		a += 1
print(a)


N = int(input())
yakusuu8ko = [3 * 5 * 7, 3 * 5 * 11, 3 * 5 * 13, 3 ** 3 * 5, 3 ** 3 * 7]
print(len([n for n in yakusuu8ko if n <= N]))


n = int(input())
c = 0
for j in range(1, n + 1, 2):
	if len([i for i in range(1, j + 1) if j % i == 0]) == 8:
		c += 1
print(c)


n = max(int(input()) - 75, 0)
c = int(n > 113)
print(n // 30 + c)


import bisect
ans = [105, 135, 165, 189, 195]
n = int(input())
print(bisect.bisect_right(ans, n))


a = int(input())
if a < 105:
	print(0)
else:
	print(sum([1 for i in range(105, a + 1, 2) if len([I for I in range(1, a + 1, 2) if i % I == 0]) == 8]))


def make_divisors(n):
	(lower_divisors, upper_divisors) = ([], [])
	i = 1
	while i * i <= n:
		if n % i == 0:
			lower_divisors.append(i)
			if i != n // i:
				upper_divisors.append(n // i)
		i += 1
	return lower_divisors + upper_divisors[::-1]
n = int(input())
count = 0
for i in range(1, n + 1):
	if i % 2 == 1:
		if len(make_divisors(i)) == 8:
			count += 1
print(count)


N = int(input())
ans = 0
for n in range(1, N + 1, 2):
	yaku = 0
	for i in range(1, n + 1):
		if n % i == 0:
			yaku += 1
	if yaku == 8:
		ans += 1
print(ans)


k = [104, 134, 164, 188, 194]
n = int(input())
k.append(n)
print(sorted(k).index(n))


n = int(input())
print(len([i for i in [105, 135, 165, 189, 195] if i <= n]))


n = int(input())
a = [105, 135, 165, 189, 195]
for i in range(5):
	a[i] = 1 if n >= a[i] else 0
print(sum(a))


n = int(input())
ansList = [105, 135, 165, 189, 195]
m = len(list(filter(lambda x: x <= n, ansList)))
print(m)


n = int(input())
ans = 0
L = [0] * 200
for i in range(1, n + 1, 2):
	tmp = 1
	cnt = 0
	while tmp <= i:
		if i % tmp == 0:
			cnt += 1
		tmp += 1
		L[i] = cnt
print(L.count(8))


N = int(input())
cnt = 0
Ans = 0
for i in range(1, N + 1):
	for j in range(1, N + 1):
		if i % j == 0 and i % 2 == 1:
			cnt += 1
	if cnt == 8:
		Ans += 1
	cnt = 0
print(Ans)


def num_divisors(n):
	return sum((n % (i + 1) == 0 for i in range(n)))
n = int(input())
print(sum((num_divisors(k) == 8 for k in range(1, n + 1, 2))))


a = [3 ** 3 * 5, 3 ** 3 * 7, 3 * 5 * 7, 3 * 5 * 11, 3 * 5 * 13]
a.sort()
n = int(input())
for i in range(len(a)):
	if a[i] > n:
		break
	if i == 4:
		i = 5
print(i)


n = int(input()) + 1
res = 0
for i in range(1, n):
	if i % 2 == 0:
		continue
	s = 0
	for j in range(1, i + 1):
		if i % j == 0:
			s += 1
	if s == 8:
		res += 1
print(res)


N = int(input())
print((N >= 195) + (N >= 189) + (N >= 165) + (N >= 135) + (N >= 105))


n = int(input())
a = [135, 189, 105, 165, 195]
ans = 0
for i in a:
	if i <= n:
		ans += 1
print(ans)


def number_of_divisors(x: int) -> int:
	count = 0
	for i in range(1, x + 1):
		if x % i == 0:
			count += 1
	return count

def answer(n: int) -> int:
	if n < 105:
		return 0
	count = 0
	for i in range(105, n + 1, 2):
		if number_of_divisors(i) == 8:
			count += 1
	return count

def main():
	n = int(input())
	print(answer(n))

def __starting_point():
	main()
__starting_point()


def divisor(n):
	cnt = 0
	for i in range(1, int(n ** 0.5) + 1):
		if n % i == 0:
			cnt += 1
	return cnt * 2
n = int(input())
ans = 0
for i in range(1, n + 1):
	if i % 2 != 0 and divisor(i) == 8:
		ans += 1
print(ans)


n = int(input())
print(5 if n > 194 else 4 if n > 188 else 3 if n > 164 else 2 if n > 134 else 1 if n > 104 else 0)


n = int(input())
ans = 0
for i in range(1, n + 1, 2):
	cnt = 0
	for j in range(1, i + 1):
		if i % j == 0:
			cnt += 1
	ans += 1 if cnt == 8 else 0
print(ans)


n = int(input())
table = [105, 135, 165, 189, 195]
print(sum([1 for x in table if x <= n]))


n = int(input())
ans = 0
if n >= 105:
	ans += 1
if n >= 135:
	ans += 1
if n >= 165:
	ans += 1
if n >= 189:
	ans += 1
if n >= 195:
	ans += 1
print(ans)


n = int(input())
answers = [105, 135, 165, 189, 195]
for (i, a) in enumerate(answers):
	if n < a:
		print(i)
		break
else:
	print(5)


N = int(input())

def factors(n):
	return sum((0 == n % (1 + x) for x in range(N)))
print(sum(map(lambda x: factors(x) == 8, range(105, N + 1, 2))))


N = int(input())
A = [105, 135, 165, 189, 195]
print(sum([1 for a in A if a <= N]))


n = int(input())
import bisect
idx = bisect.bisect([105, 135, 165, 189, 195], n)
print(idx)


n = int(input())
if n < 105:
	print(0)
elif n < 3 * 5 * 9:
	print(1)
elif n < 3 * 5 * 11:
	print(2)
elif n < 3 * 7 * 9:
	print(3)
elif n < 3 * 5 * 13:
	print(4)
else:
	print(5)


print([sum([i % j == 0 for j in range(1, i)]) for i in range(1, int(input()) + 1, 2)].count(7))


print(sum([sum([i % j == 0 for j in range(1, i + 1)]) == 8 for i in range(1, int(input()) + 1, 2)]))


N = int(input())
yakusuu8 = [3 ** 3 * 5, 3 ** 3 * 7, 3 * 5 * 7, 3 * 5 * 11, 3 * 5 * 13]
cnt = 0
for i in yakusuu8:
	if i <= N:
		cnt += 1
print(cnt)


n = int(input())
ans = 0
for i in range(1, n + 1):
	if i % 2 == 0:
		continue
	dcnt = 0
	for j in range(1, i + 1):
		if i % j == 0:
			dcnt += 1
	if dcnt == 8:
		ans += 1
print(ans)


P = [105, 135, 165, 189, 195, 201]
N = int(input())
for (i, p) in enumerate(P):
	if N < p:
		print(i)
		break


N = int(input())
if N >= 105:
	if N >= 135:
		if N >= 165:
			if N >= 189:
				if N >= 195:
					print(5)
				else:
					print(4)
			else:
				print(3)
		else:
			print(2)
	else:
		print(1)
else:
	print(0)


_ = int(input())
c = 0
for i in 'i\x87¥½ÃÉ':
	if _ < ord(i):
		print(c)
		break
	c += 1


N = int(input())
cnt = 0
L = [3 * 5 * 7, 3 * 5 * 9, 3 * 5 * 11, 3 * 5 * 13, 3 * 7 * 9]
for l in L:
	cnt += l <= N
print(cnt)


def make_divisors(n):
	divisors = []
	for i in range(1, int(n ** 0.5) + 1):
		if n % i == 0:
			divisors.append(i)
			if i != n // i:
				divisors.append(n // i)
	divisors.sort()
	return divisors
n = int(input())
l = [i for i in range(n + 1)]
ls = l[1::2]
ans = 0
for i in ls:
	if len(make_divisors(i)) == 8:
		ans += 1
print(ans)


N = int(input())
l = [0] * 201
for i in range(1, N + 1, 2):
	l[i] = len([i for x in range(1, i + 1) if i % x == 0])
print(l.count(8))


n = int(input())
ans = 0
l = [105, 135, 165, 189, 195]
for i in range(n + 1):
	if i in l:
		ans += 1
print(ans)


n = int(input())
ans = 0
score = []
for i in range(1, n + 1, 2):
	li = []
	for j in range(1, n + 1):
		if i % j == 0:
			li.append(j)
	if len(li) == 8:
		score.append(i)
long = len(score)
print(long)


a = int(input())
if a < 105:
	print(0)
if 105 <= a < 135:
	print(1)
if 135 <= a < 165:
	print(2)
if 165 <= a < 189:
	print(3)
if 189 <= a < 195:
	print(4)
if 195 <= a:
	print(5)


N = int(input())
answer = 0
for i in range(1, N + 1, 2):
	c = 0
	for j in range(1, i + 1):
		if i % j == 0:
			c += 1
	if c == 8:
		answer += 1
print(answer)


a = int(input())
print(sum((a > ord(x) for x in 'h\x86¤¼Â')))


N = int(input())
num = 0
for i in range(N + 1)[1::2]:
	able = 1
	for j in range(N // 2 + 1)[1:]:
		if i % j == 0:
			able += 1
	if able == 8:
		num += 1
print(num)


n = int(input())
cnt = 0
for i in range(1, n + 1):
	if i % 2 == 0:
		continue
	tmp = 0
	for j in range(1, n + 1):
		if i % j == 0:
			tmp += 1
	if tmp == 8:
		cnt += 1
print(cnt)


n = int(input())
print(sum((x <= n - 100 for x in [5, 35, 65, 89, 95])))


N = int(input())
cnt = 0
for i in range(1, N + 1, 2):
	divisor = 0
	for j in range(1, i + 1):
		if i % j == 0:
			divisor += 1
	if divisor == 8:
		cnt += 1
print(cnt)


n = int(input())
mylists = []
for i in range(1, n + 1):
	cnt = 0
	for j in range(1, n + 1):
		if i < j or i % 2 == 0:
			break
		if i % j == 0:
			cnt += 1
		if cnt == 8:
			mylists.append(i)
		if cnt >= 9:
			mylists.pop()
			break
print(len(mylists))


print(len([i for i in range(int(input())) if i + 1 in [105, 135, 165, 189, 195]]))


A = [3 * 5 * 7, 3 * 5 * 11, 3 * 3 * 3 * 5, 3 * 5 * 13, 3 * 3 * 3 * 7]
N = int(input())
print(len([x for x in A if x <= N]))


n = int(input())

def cnt(x):
	return sum((1 for i in range(1, x + 1) if x % i == 0))
print(sum((1 for i in range(1, n + 1, 2) if cnt(i) == 8)))


n = int(input())
ans = []
for i in range(1, n + 1):
	count = 0
	for j in range(1, i + 1):
		if i % j == 0 and i % 2 == 1:
			count += 1
		if count == 8:
			ans.append(i)
print(len(ans))


N = int(input())
counter = 0
for i in range(105, N + 1, 2):
	div_counter = 0
	j = 1
	while j <= i:
		if i % j == 0:
			div_counter += 1
		j += 1
	if div_counter == 8:
		counter += 1
print(counter)


p = int(input())
ans = 0

def solve(p):
	cnt = 0
	for i in range(1, p + 1):
		if p % i == 0:
			cnt += 1
	if cnt == 8 and p % 2 == 1:
		return True
	return False
for i in range(1, p + 1):
	if solve(i) == True:
		ans += 1
print(ans)


n = int(input())
eight_list = [105, 135, 165, 189, 195]
count = 0
for eight in eight_list:
	if n >= eight:
		count += 1
print(count)


N = int(input())
l = [105, 135, 165, 189, 195]
l.append(N + 1)
l.sort()
print(l.index(N + 1))


N = int(input())
ans = 0
for i in range(1, N + 1):
	if i % 2 == 0:
		continue
	num = 0
	for j in range(1, i + 1):
		if i % j == 0:
			num += 1
	if num == 8:
		ans += 1
print(ans)


n = int(input())
c = 0
for i in range(1, n + 1):
	m = 0
	for j in range(1, i + 1):
		m += i % j < 1
	c += m == i % 2 * 8
print(c)


import bisect
N = int(input())
l = [105, 135, 165, 189, 195]
print(bisect.bisect_right(l, N))


def countDivisor(x):
	count = 0
	for i in range(1, x + 1):
		if x % i == 0:
			count += 1
	return count
N = int(input())
ans = 0
for i in range(1, N + 1, 2):
	if countDivisor(i) == 8:
		ans += 1
print(ans)


import bisect
print(bisect.bisect([6, 36, 66, 90, 96], int(input()) - 99))


n = int(input())
print(len([a for a in range(1, n + 1) if a in [105, 135, 165, 195, 189]]))


N = int(input())
list = [105, 135, 165, 189, 195]
ans = 0
for i in list:
	if i <= N:
		ans += 1
print(ans)


s = [105, 135, 165, 189, 195]
ans = 0
n = int(input())
for f in s:
	if n >= f:
		ans += 1
print(ans)


l = [3 * 5 * 7, 3 * 5 * 11, 3 * 5 * 13, 3 ** 3 * 5, 3 ** 3 * 7]
n = int(input())
ans = 0
for i in l:
	if i <= n:
		ans += 1
print(ans)


import sys
input = lambda : sys.stdin.readline().rstrip()
N = int(input())
ans = 0
for n in range(1, N + 1, 2):
	yaku = 0
	for i in range(1, n + 1):
		if n % i == 0:
			yaku += 1
	if yaku == 8:
		ans += 1
print(ans)


a = [s for s in range(int(input()) + 1)]
print(a.count(105) + a.count(165) + a.count(195) + a.count(189) + a.count(135))


n = int(input())
ans = 0
i = 1
while i <= n:
	j = 1
	cnt = 0
	while j <= i:
		if i % j == 0:
			cnt += 1
		j += 1
	if cnt == 8 and i % 2 == 1:
		ans += 1
	i += 1
print(ans)


import sys
input = sys.stdin.readline

def slove():
	N = int(input())
	answer = 0
	for x in range(1, N + 1, 2):
		count = 0
		for i in range(1, x + 1):
			if x % i == 0:
				count += 1
		if count == 8:
			answer += 1
	print(answer)

def __starting_point():
	slove()
__starting_point()


N = int(input())
cnt = []

def divisor(n):
	i = 1
	table = []
	while i * i <= n:
		if n % i == 0:
			table.append(i)
			table.append(n // i)
		i += 1
	table = list(set(table))
	if len(table) == 8:
		cnt.append(1)
for i in range(1, N + 1):
	if i % 2 != 0:
		divisor(i)
print(len(cnt))


N = int(input())
ans = 0
for i in range(1, N + 1, 2):
	cnt = 2
	for j in range(3, int(i ** 0.5) + 1, 2):
		if i % j == 0:
			cnt += 2
	if cnt == 8:
		ans += 1
print(ans)


x = int(input())
ans = 0
y = 0
for i in range(1, x + 1):
	y = 0
	for j in range(1, x + 1):
		if i % j == 0 and i % 2 == 1:
			y = y + 1
	if y == 8:
		ans = ans + 1
print(ans)


n = int(input())
ans = 0
L = [105, 135, 165, 189, 195]
for l in L:
	if n >= l:
		ans += 1
	else:
		break
print(ans)


import math
from collections import Counter
from itertools import product
ii = lambda : int(input())
mi = lambda : list(map(int, input().split()))
li = lambda : list(map(int, input().split()))

def make_divisors(n):
	(lower_div, upper_div) = ([], [])
	i = 1
	while i * i <= n:
		if n % i == 0:
			lower_div.append(i)
			if i != n // i:
				upper_div.append(n // i)
		i += 1
	return lower_div + upper_div[::-1]
n = ii()
cnt = 0
for i in range(1, n + 1, 2):
	if len(make_divisors(i)) == 8:
		cnt += 1
print(cnt)


3
N = int(input())

def num_div(n):
	ret = 0
	for i in range(1, n + 1):
		if n % i == 0:
			ret += 1
	return ret
r = 0
for i in range(1, N + 1, 2):
	if num_div(i) == 8:
		r += 1
print(r)


n = int(input())

def cal(a):
	cn = 0
	for i in range(1, a + 1):
		if a % i == 0:
			cn += 1
	return cn == 8
ans = 0
for i in range(1, n + 1):
	if i % 2 == 1:
		ans += cal(i)
print(ans)


N = int(input())
P = [105, 135, 165, 189, 195]
print(sum([1 for p in P if N >= p]))


n = int(input())
ans = 0
for i in range(1, n + 1, 2):
	t = 0
	if i <= 17:
		continue
	for j in range(1, n + 1, 2):
		if i % j == 0:
			t += 1
	if t == 8:
		ans += 1
print(ans)


in_num = int(input())
check_num = 1
ans_counter = 0
while check_num <= in_num:
	i = 1
	div_counter = 0
	while i <= check_num:
		if check_num % i == 0:
			div_counter += 1
		i += 2
	if div_counter == 8:
		ans_counter += 1
	check_num += 2
print(ans_counter)


n = int(input())
t = 0
for i in range(1, n + 1):
	if i % 2 == 1:
		s = 1
		for j in range(1, i // 2 + 1):
			if i % j == 0:
				s += 1
		if s == 8:
			t += 1
print(t)


n = int(input())
score = []
for s in range(1, n + 1, 2):
	count = 0
	for t in range(1, s + 1):
		if s % t == 0:
			count += 1
	score.append(count)
cnt = 0
for i in score:
	if i == 8:
		cnt += 1
print(cnt)


n = int(input())

def check(p):
	c = 0
	for i in range(1, p + 1):
		if p % i == 0:
			c += 1
	return c
ans = 0
for i in range(1, n + 1):
	if i % 2 == 1:
		if check(i) == 8:
			ans += 1
print(ans)


import bisect
N = int(input())
lst = [105, 135, 165, 189, 195]
ans = bisect.bisect_right(lst, N)
print(ans)


n = int(input())
ans = 0
for i in range(1, n + 1):
	c = 0
	for j in range(1, 201, 2):
		c += i % j == 0
	ans += c == 8
print(ans)


n = int(input())
l = []
for i in range(105, n + 1, 2):
	c = 0
	for j in range(1, i + 1):
		if i % j == 0:
			c += 1
	if c == 8:
		l.append(i)
print(len(l))


n = int(input())
ans = 0
for i in range(1, n + 1, 2):
	s = [i % j for j in range(1, i + 1)]
	if s.count(0) == 8:
		ans += 1
print(ans)


def make_divisors(n):
	(lower_divisors, upper_divisors) = ([], [])
	i = 1
	while i * i <= n:
		if n % i == 0:
			lower_divisors.append(i)
			if i != n // i:
				upper_divisors.append(n // i)
		i += 1
	return lower_divisors + upper_divisors[::-1]
ans = 0
n = int(input())
for i in range(1, n + 1):
	if i % 2 == 0:
		continue
	q = make_divisors(i)
	if len(q) == 8:
		ans += 1
print(ans)


n = int(input())
ans = 0
for x in range(1, n + 1, 2):
	if sum((1 for y in range(1, x + 1) if x % y == 0)) == 8:
		ans += 1
print(ans)


n = int(input())
list = [105, 135, 165, 189, 195]
ans = 0
for x in list:
	if x <= n:
		ans += 1
print(ans)


def make_divisors(n: int) -> list:
	return_list = []
	for i in range(1, int(n ** 0.5) + 1):
		if n % i == 0:
			return_list.append(i)
			if i != n // i:
				return_list.append(n // i)
	return return_list
N = int(input())
cnt = 0
for i in range(1, N + 1, 2):
	if len(make_divisors(i)) == 8:
		cnt += 1
print(cnt)


N = int(input())

def make_divisor(n):
	divisors = []
	for i in range(1, int(n ** 0.5) + 1):
		if n % i == 0:
			divisors.append(i)
			if i != n // i:
				divisors.append(n // i)
	divisors.sort()
	return divisors
cnt = 0
for i in range(1, N + 1):
	if len(make_divisor(i)) == 8 and i % 2 == 1:
		cnt += 1
print(cnt)


n = int(input())
lst = [105, 135, 165, 189, 195, 201]
for i in range(6):
	if n < lst[i]:
		print(i)
		break


n = int(input())
cnt = 0
for i in range(1, n + 1):
	if sum((True for j in range(1, i + 1) if i % j == 0 and i % 2 != 0)) == 8:
		cnt += 1
print(cnt)


n = int(input())
l = [105, 135, 165, 189, 195]
for i in range(len(l)):
	if n < l[i]:
		print(i)
		exit()
print(len(l))


a = [105, 135, 165, 189, 195]
N = int(input())
ans = 0
for i in range(N + 1):
	ans += int(i in a)
print(ans)


def makedivisors(n):
	(lower_divisors, upper_divisors) = ([], [])
	i = 1
	while i * i <= n:
		if n % i == 0:
			lower_divisors.append(i)
			if i != n // i:
				upper_divisors.append(n // i)
		i += 1
	return lower_divisors + upper_divisors[::-1]
n = int(input())
ans = 0
for i in range(1, n + 1):
	if len(makedivisors(i)) == 8 and i % 2 == 1:
		ans += 1
print(ans)


a = [3 * 5 * 7, 3 ** 3 * 5, 3 ** 3 * 7, 3 * 5 * 11, 3 * 5 * 13]
N = int(input())
ans = 0
for i in a:
	if N >= i:
		ans += 1
print(ans)


n = int(input())
print(len([i for i in range(1, n + 1) if i % 2 == 1 and len([1 for x in range(1, i + 1) if i % x == 0]) == 8]))


n = int(input())
cnt = 0
for m in range(1, n + 1, 2):
	if len([i for i in range(1, m + 1) if m % i == 0]) == 8:
		cnt += 1
print(cnt)


A = [105, 135, 165, 189, 195]
cnt = 0
n = int(input())
for a in A:
	if a <= n:
		cnt += 1
print(cnt)


N = int(input())
ans = 0
for n in range(1, N + 1, 2):
	_ans = 0
	for x in range(1, n + 1):
		if n % x == 0:
			_ans += 1
	if _ans == 8:
		ans += 1
print(ans)


print(sum([sum([i % j == 0 for j in range(2, i)]) == 6 for i in range(105, int(input()) + 1, 2)]))


n = int(input())
print((n > 104) + (n > 134) + (n > 164) + (n > 188) + (n > 194))


def func(m):
	return sum([m % i == 0 for i in range(1, m + 1)])
N = int(input())
print(sum([func(i) == 8 for i in range(1, N + 1, 2)]))


n = int(input())
ans = 0
for i in range(1, n + 1, 2):
	a = 0
	for j in range(3, i):
		if i % j == 0:
			a += 1
	if a == 6:
		ans += 1
print(ans)


n = int(input())
d = 0
for x in range(1, n + 1):
	c = 0
	for i in range(1, x + 1):
		if x % i == 0:
			c += 1
	if c == 8 and x % 2 == 1:
		d += 1
print(d)


N = int(input())
co = 0
a = 0
for j in range(1, N + 1):
	if j % 2 == 1:
		for i in range(1, j + 1):
			if j % i == 0:
				co = co + 1
	if co == 8:
		a = a + 1
	co = 0
print(a)


a = int(input())
if a <= 104:
	ans = 0
elif a < 135:
	ans = 1
elif a < 165:
	ans = 2
elif a < 189:
	ans = 3
elif a < 195:
	ans = 4
else:
	ans = 5
print(ans)


import sys
import math
n = int(input())
li = [105, 135, 165, 189, 195]
cnt = 0
for i in li:
	if n >= i:
		cnt += 1
print(cnt)


N = int(input())
ans = 0
for n in range(1, N + 1, 2):
	cnt = 0
	for z in range(1, n + 1):
		if n % z == 0:
			cnt += 1
	if cnt == 8:
		ans += 1
print(ans)


n = int(input())
divisor_list = []
for i in range(1, n + 1):
	if i % 2 != 0:
		count = 0
		for j in range(1, i + 1):
			if i % j == 0:
				count += 1
		divisor_list.append(count)
print(divisor_list.count(8))


n = int(input())
j = 1
a = 0
while j <= n:
	d = 0
	for i in range(1, j + 1):
		if j % i == 0:
			d += 1
	if d == 8:
		a += 1
	j += 2
print(a)


def count_devisor(n):
	i = 1
	count = 0
	while i * i <= n:
		if n % i == 0:
			count += 2
		i += 1
	return count
n = int(input())
ans = 0
for i in range(1, n + 1, 2):
	if count_devisor(i) == 8:
		ans += 1
print(ans)


n = [int(i) for i in range(1, int(input()) + 1)]
print(n.count(105) + n.count(135) + n.count(165) + n.count(189) + n.count(195))


a = [105, 135, 165, 189, 195]
b = int(input())
sum = 0
for i in a:
	if b >= i:
		sum = sum + 1
print(sum)


cand = [105, 135, 165, 189, 195]
k = int(input())
print(len([n for n in cand if n <= k]))


a = int(input())
print(len([1 for i in [52, 67, 82, 94, 97] if 2 * i < a]))


n = int(input())
b = [3 * 5 * 7, 3 * 5 * 9, 3 * 5 * 11, 27 * 7, 3 * 5 * 13]
a = 0
for i in range(len(b)):
	if b[i] <= n:
		a += 1
print(a)


N = int(input())
l = [105, 135, 165, 189, 195]
for i in range(5):
	if N < l[i]:
		print(i)
		exit()
print(5)


n = int(input())
cnt = 0
i = 1
while i <= n:
	c = 0
	for j in range(1, i + 1):
		if i % j == 0:
			c += 1
	if c == 8:
		cnt += 1
	i += 2
print(cnt)


n = int(input())
l = list(range(1, n + 1))
k = [105, 135, 165, 189, 195]
lk = set(l) & set(k)
print(len(lk))


N = int(input())
if N < 105:
	print(0)
else:
	print(len([i for i in range(105, N + 1) if len([j for j in range(1, i + 1, 2) if i % j == 0]) == 8]))


N = int(input())
s = 0
for i in range(1, N + 1, 2):
	t = 0
	for j in range(1, i + 1, 2):
		if not i % j:
			t += 1
	if t == 8:
		s += 1
print(s)


N = int(input())

def f(n):
	return sum((1 for i in range(1, n + 1) if n % i == 0))
print(sum((1 for i in range(1, N + 1) if i % 2 > 0 and f(i) == 8)))


N = int(input())
s = 0
for i in range(1, N + 1, 2):
	count = 0
	for j in range(1, i + 1):
		if i % j == 0:
			count += 1
	if count == 8:
		s += 1
print(s)


N = int(input())
a = [105, 135, 165, 189, 195]
s = 0
for i in a:
	if i <= N:
		s += 1
	else:
		break
print(s)


N = int(input())
l = 0
for i in range(3, N + 1, 2):
	j = 1
	k = 0
	while j * j < i:
		if i % j == 0:
			k += 2
		j += 2
	if j * j == i:
		k += 1
	if k == 8:
		l += 1
print(l)


import math

def primefac(n):
	s = []
	x = int(math.sqrt(n)) + 1
	for i in range(2, x + 1):
		if n % i == 0:
			cnt = 0
			while n % i == 0:
				n //= i
				cnt += 1
			s.append([i, cnt])
	if n != 1:
		s.append([n, 1])
	return s
n = int(input())
ans = 0
for i in range(1, n + 1):
	x = 1
	s = primefac(i)
	for t in s:
		x *= t[1] + 1
	if x == 8 and i % 2 == 1:
		ans += 1
print(ans)


n = int(input())
count = 0
for i in range(2, n + 1):
	pre = i
	dic = {}
	while i % 2 == 0:
		if 2 not in dic:
			dic[2] = 2
		else:
			dic[2] += 1
		i //= 2
	f = 3
	while pow(f, 2) <= i:
		while i % f == 0:
			if f not in dic:
				dic[f] = 2
			else:
				dic[f] += 1
			i //= f
		f += 2
	if i != 1:
		dic[i] = 2
	num = 1
	for i in dic.values():
		num *= i
	if num == 8 and pre % 2 == 1:
		count += 1
print(count)


N = int(input())
M = [105, 135, 165, 189, 195]
T = 0
for i in range(5):
	if N >= M[i]:
		T += 1
print(T)


from bisect import bisect_right
li = [105, 135, 165, 189, 195]
N = int(input())
ans = bisect_right(li, N)
print(ans)


n = int(input())
l = list([105, 135, 165, 189, 195])
a = l.count(n)
l.append(n)
l.sort()
print(l.index(n) + a)


n = int(input())
sm = 0
for i in range(3, n + 1, 2):
	num = 0
	for j in range(1, i + 1, 2):
		if i % j == 0:
			num += 1
	if num == 8:
		sm += 1
print(sm)


import sys
input = sys.stdin.readline

def make_divisors(n):
	divisors = []
	for i in range(1, int(n ** 0.5) + 1):
		if n % i == 0:
			divisors.append(i)
			if i != n // i:
				divisors.append(n // i)
	return divisors

def main():
	N = int(input())
	ans = 0
	for i in range(1, N + 1):
		if i % 2 == 0:
			continue
		if len(make_divisors(i)) == 8:
			ans += 1
	print(ans)

def __starting_point():
	main()
__starting_point()


N = int(input())
odd_8 = [0, 105, 135, 165, 189, 195, 201]
for i in range(6):
	if odd_8[i] <= N < odd_8[i + 1]:
		print(i)


N = int(input())
res = 0
for n in range(1, N + 1, 2):
	cnt = 0
	for i in range(1, n + 1):
		if n % i == 0:
			cnt += 1
	if cnt == 8:
		res += 1
print(res)


def main():
	n = int(input())
	odds = [i for i in range(1, n + 1) if i % 2 != 0]
	ans = 0
	for i in odds:
		count = 0
		for j in range(1, i + 1):
			if i % j == 0:
				count += 1
		if count == 8:
			ans += 1
	print(ans)
main()


n = int(input())
ans = 0
for i in range(1, n + 1):
	cnt = 0
	for j in range(1, i + 1):
		if i % j == 0:
			cnt += 1
	ans += i & 1 and cnt == 8
print(ans)


n = int(input())
cnt = 0
for i in range(1, n + 1, 2):
	factors = 1
	for j in range(1, i // 2 + 1):
		if i % j == 0:
			factors += 1
	if factors == 8:
		cnt += 1
print(cnt)


N = int(input())
ans = [105, 135, 165, 189, 195]
print(len([a for a in ans if a <= N]))


N = int(input())
eight = [105, 135, 165, 189, 195]
print(len(list(filter(lambda x: x <= N, eight))))


_ = int(input())
print(sum((ord(x) < _ for x in 'h\x86¤¼Â')))


N = int(input())
i = 1
yakusu = 0
while i <= N:
	j = 1
	k = 0
	while j <= i:
		if i % j == 0:
			k = k + 1
		j = j + 1
		if k == 8:
			yakusu = yakusu + 1
	i = i + 2
print(yakusu)


c = 0
for i in range(1, int(input()) + 1):
	if not i % 2:
		continue
	if sum((not i % j for j in range(1, i + 1))) == 8:
		c += 1
print(c)


def make_divisors(n):
	divisors = []
	for i in range(1, int(n ** 0.5) + 1):
		if n % i == 0:
			divisors.append(i)
			if i != n // i:
				divisors.append(n // i)
	return divisors
N = int(input())
count = 0
for i in range(1, N + 1, 2):
	if len(make_divisors(i)) == 8:
		count += 1
print(count)


N = int(input())
lst = [3 * 5 * 7, 3 * 3 * 3 * 5, 3 * 5 * 11, 3 * 3 * 3 * 7, 3 * 5 * 13]
ans = 0
for num in lst:
	if num <= N:
		ans += 1
print(ans)


N = int(input())
ans = 0
for i in range(1, N + 1, 2):
	count = 1
	for j in range(1, int(i / 3 + 1)):
		if i % j == 0:
			count += 1
	if count == 8:
		ans += 1
print(ans)


N = int(input())
c = [3 * 5 * 7, 3 * 3 * 3 * 5, 3 * 5 * 11, 3 * 3 * 3 * 7, 3 * 5 * 13]
a = 0
for num in c:
	if num <= N:
		a = a + 1
print(a)


n = int(input())
lst = [105, 135, 165, 189, 195]
for i in range(5):
	if n < lst[i]:
		print(i)
		exit()
print(5)


N = int(input())
cnt = [0] * (N + 1)
for i in range(1, N + 1):
	j = i
	while j <= N:
		cnt[j] += 1
		j += i
res = 0
for i in range(1, N + 1):
	if i & 1 and cnt[i] == 8:
		res += 1
print(res)


n = int(input())
num = [3 * 5 * 7, 3 * 3 * 3 * 5, 3 * 5 * 11, 3 * 3 * 3 * 7, 3 * 5 * 13]
ans = 0
for i in range(5):
	if n >= num[i]:
		ans += 1
	else:
		break
print(ans)


d8 = [105, 135, 165, 189, 195]
n = int(input())
print(sum([1 for i in d8 if i <= n]))


print([[i % j for j in range(2, i)].count(0) for i in range(1, int(input()) + 1, 2)].count(6))


N = int(input())
nums = list((n for n in range(1, N + 1) if n % 2 == 1))
len_nums = len(nums)
divisors = []
for i in range(len_nums):
	n = 1
	divisor = 0
	while n <= N:
		if nums[i] % n == 0:
			divisor += 1
		n += 1
	divisors.append(divisor)
print(divisors.count(8))


N = int(input())
ans = [0 for n in range(N + 1)]
for n in range(1, N + 1, 2):
	for i in range(n, N + 1, n):
		ans[i] += 1
print(ans.count(8))


n = int(input())
s = [105, 135, 165, 189, 195]
cnt = 0
for i in range(n + 1):
	if i in s:
		cnt += 1
print(cnt)


n = int(input())
L = [105, 135, 165, 189, 195]
print(len(list(filter(lambda x: x <= n, L))))


from math import *
N = int(input())

def count(n):
	rt = sqrt(n)
	result = 0
	if int(rt) ** 2 == n:
		for i in range(1, int(rt) + 1):
			if n % i == 0:
				result += 1
		result = 2 * result - 1
	else:
		for i in range(1, int(rt) + 1):
			if n % i == 0:
				result += 1
		result *= 2
	return result
ans = 0
for i in range(1, N + 1):
	if i % 2 == 1 and count(i) == 8:
		ans += 1
print(ans)


N = int(input())
yakusuu8_cnt = 0
for i in range(1, N + 1):
	if i % 2 == 1:
		yakusuu_cnt = 0
		for j in range(1, i + 1):
			if i % j == 0:
				yakusuu_cnt += 1
			if yakusuu_cnt == 8:
				yakusuu8_cnt += 1
print(yakusuu8_cnt)


N = int(input())
anslist = [105, 165, 195, 135, 189]
print(len([i for i in anslist if i <= N]))


def II():
	return int(input())

def MII():
	return list(map(int, input().split()))

def LII():
	return list(map(int, input().split()))

def main():
	N = II()
	ans = 0
	for i in range(1, N + 1, 2):
		cnt = 0
		for j in range(1, i + 1):
			if i % j == 0:
				cnt += 1
		if cnt == 8:
			ans += 1
	print(ans)

def __starting_point():
	main()
__starting_point()


n = int(input())
maxn = int(n ** (1 / 3))
count = 0
for i in range(1, n + 1, 2):
	tmp = 0
	for j in range(1, i + 1):
		if i % j == 0:
			tmp += 1
	if tmp == 8:
		count += 1
print(count)


n = int(input())
ans = 0
for x in range(1, n + 1, 2):
	i = 1
	count = 0
	while i * i <= x:
		if x % i == 0:
			count += 1
			if i != x // i:
				count += 1
		i += 1
	if count == 8:
		ans += 1
print(ans)


import itertools
N = int(input())
arr = [1 for i in itertools.combinations(range(3, 15, 2), 3) if i[0] * i[1] * i[2] <= N]
print(sum(arr))


from bisect import *
print('012345'[bisect([105, 135, 165, 189, 195], int(input()))])